如何跟踪Log4j或Sl4j加载哪个配置文件进行初始化
来源:互联网 发布:泰和安主机编程程序 编辑:程序博客网 时间:2024/05/01 11:24
场景:在实际的开发当中,经常会出现自己写的log4j.properties配置文件无效,要怎么跟踪实际加载的是哪个配置文件呢?
在log4j.properties和log4j.xml两个文件都存在的时候,log4j框架默认先找log4.xml文件,很可能引入的log4j.jar包中存在log4.xml文件,导致了自己写的配置文件无效!!
解决方案:
在Java命令中添加-Dlog4j.debug虚拟机参数,这样在使用log4j框架的时候,会在Console控制台打印出加载配置文件的步骤信息
本案例的log4j.properties:
#日志级别大小: DEBUG < INFO < WARN < ERROR < FATAL#log4j.rootLogger 配置的是大于等于当前级别的日志信息的输出#log4j.rootLogger 用法:(注意appenderName可以是一个或多个)#log4j.rootLogger = 日志级别,appenderName1,appenderName2,....#log4j.appender.appenderName1定义的是日志的输出方式,有两种:一种是命令行输出或者叫控制台输出,另一种是文件方式保存# 1)控制台输出则应该配置为org.apache.log4j.PatternLayout# 2)文本方式保存应该配置为org.apache.log4j.DailyRollingFileAppender# 3)也可以自定义 Appender类#log4j.appender.appenderName1.layout.ConversionPattern 定义的是日志内容格式#log4j.appender.appenderName1.file 定义了该日志文件的文件名称#log4j.appender.appenderName1.DatePattern 定义了日志文件重新生成的时间间隔,如果设置到天,则每天重新生成一个新的日志文件。# 旧的日志文件则以新的文件名保存,文件名称 = log4j.appender.appenderName1.file + log4j.appender.appenderName1.DatePattern #log4j.rootLogger = info,stdout,file log4j.rootLogger = info,stdoutlog4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=[%p][%d{yyyy-MM-dd HH:mm:ss}][%C{1}:%L] - %m%n#log4j.appender.file = org.apache.log4j.DailyRollingFileAppender#log4j.appender.file.file=d\:\\log\\info(+).log#log4j.appender.file.DatePattern= '.'yyyy-MM-dd#log4j.appender.file.layout=org.apache.log4j.PatternLayout#log4j.appender.file.layout.ConversionPattern=[%p][%d{yyyy-MM-dd HH:mm:ss}][%C{1}:%L] - %m%n# log4j.logger 用法如下# 1)log4j.logger.包名 = 日志级别 , appenderName1,appenderName2,....# 定义该包名下的所有类的日志输出# 2)log4j.logger.类全名含包名 = 日志级别 , appenderName1,appenderName2,....# 定义指定类的日志输出# 3) log4j.logger.日志对象Logger命名名称 = 日志级别 , appenderName1,appenderName2,....# 定义了某命名名称的日志的 输出,如: # log4j.logger.Log1 就是指定义通过 Logger.getLogger("Log1") 获取的日志对象的日志输出log4j.logger.edu.mvcdemo.controller = debug,controller_logfilelog4j.appender.controller_logfile = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.controller_logfile.file=d\:\\log\\controller_logfile.loglog4j.appender.controller_logfile.DatePattern= '.'yyyy-MM-ddlog4j.appender.controller_logfile.layout=org.apache.log4j.PatternLayoutlog4j.appender.controller_logfile.layout.ConversionPattern=[%p][%d{yyyy-MM-dd HH:mm:ss}][%C{1}:%L] - %m%n
加载配置文件过程,打印的信息如下:
log4j: Trying to find [log4j.xml] using context classloader sun.misc.Launcher$AppClassLoader@9e4f7c.log4j: Trying to find [log4j.xml] using sun.misc.Launcher$AppClassLoader@9e4f7c class loader.log4j: Trying to find [log4j.xml] using ClassLoader.getSystemResource().log4j: Trying to find [log4j.properties] using context classloader sun.misc.Launcher$AppClassLoader@9e4f7c.log4j: Using URL [file:/D:/EclipseWorkspace/MavenSpringMvcDemo/target/classes/log4j.properties] for automatic log4j configuration.log4j: Reading configuration from URL file:/D:/EclipseWorkspace/MavenSpringMvcDemo/target/classes/log4j.propertieslog4j: Parsing for [root] with value=[info,stdout].log4j: Level token is [info].log4j: Category root set to INFOlog4j: Parsing appender named "stdout".log4j: Parsing layout options for "stdout".log4j: Setting property [conversionPattern] to [[%p][%d{yyyy-MM-dd HH:mm:ss}][%C{1}:%L] - %m%n].log4j: End of parsing for "stdout".log4j: Parsed "stdout" options.log4j: Parsing for [edu.mvcdemo.controller] with value=[debug,controller_logfile].log4j: Level token is [debug].log4j: Category edu.mvcdemo.controller set to DEBUGlog4j: Parsing appender named "controller_logfile".log4j: Parsing layout options for "controller_logfile".log4j: Setting property [conversionPattern] to [[%p][%d{yyyy-MM-dd HH:mm:ss}][%C{1}:%L] - %m%n].log4j: End of parsing for "controller_logfile".log4j: Setting property [file] to [d:\log\controller_logfile.log].log4j: Setting property [datePattern] to ['.'yyyy-MM-dd].log4j: setFile called: d:\log\controller_logfile.log, truelog4j: setFile endedlog4j: Appender [controller_logfile] to be rolled at midnight.log4j: Parsed "controller_logfile" options.log4j: Handling log4j.additivity.edu.mvcdemo.controller=[null]log4j: Finished configuring.
阅读全文
0 0
- 如何跟踪Log4j或Sl4j加载哪个配置文件进行初始化
- PHP包含或读取了哪个配置文件的跟踪探讨。
- 日志sl4j、log4j、common-logging
- log4j配置文件加载方式
- Log4j配置文件的加载
- Log4j ---- 通过配置文件进行配置
- log4j配置文件的加载问题
- 程序自定义加载log4j配置文件
- log4j,logback,sl4j常用日志格式详解
- log4j,如何“自动加载”?
- log4j配置文件 不在classpath路径的初始化
- Log4j 学习日记 - 手工加载配置文件
- log4j(1.2.17版本) 加载配置文件
- WEB系统启动时加载Log4j的配置文件
- 日志操作log4j配置文件加载与jdbc
- log4j加载自定义的日志的配置文件
- 非web环境log4j配置文件加载路径
- 关于Log4j不重启重新加载配置文件
- 阿里+百度+CVTE面试集
- 提车注意事项清单
- css-如何让你的元素居中?
- 基于CentOS搭建 Git 服务
- MVC dropdownlist二级联动
- 如何跟踪Log4j或Sl4j加载哪个配置文件进行初始化
- python处理3
- 方法调用和数组概念以及for each
- C之有趣-绘制正弦曲线
- Linux下通过ODBC连接数据库
- python 案例 007 (copy list 的两种模式)
- java求数组中最大值最小值
- Java提高篇——equals()与hashCode()方法详解
- 解决端口被占用问题