最近刚好在学校Log4j的相关知识,通过查找相关的资料,终于对它有了一个初步的认识和理解。但是学习中发现一个问题,一直没有找到相关的答案,希望各位大哥大姐们,帮忙解决一下!问题如下:通过log4j.properties配置时,需要包括三个内容,(1)配置Logger(2)配置日志信息输出的目的地Appender(3)配置日志信息的格式(布局)。在配置(2)时,发现其语法如下
log4j.appender.appenderName = Log4j提供的appender类(前面的log4j的l是小写)
log4j.appender.appenderName.属性名 = 属性值
…..
log4j.appender.appenderName.属性名 = 属性值
我的问题就是“属性名”从哪儿来的,我开始以为是来自Log4j提供的appender类,例如我配置为:
log4j.appender.stdout = org.apache.log4j.FileAppender
log4j.appender.stdout.File=E\:mylog.txt
那么属性 File就是类FileAppender的实例域吗?我查找了FileAppender源码,在类中没有发现有File变量。那么File从哪来的?谢谢。
log4j.appender.appenderName = Log4j提供的appender类(前面的log4j的l是小写)
log4j.appender.appenderName.属性名 = 属性值
…..
log4j.appender.appenderName.属性名 = 属性值
我的问题就是“属性名”从哪儿来的,我开始以为是来自Log4j提供的appender类,例如我配置为:
log4j.appender.stdout = org.apache.log4j.FileAppender
log4j.appender.stdout.File=E\:mylog.txt
那么属性 File就是类FileAppender的实例域吗?我查找了FileAppender源码,在类中没有发现有File变量。那么File从哪来的?谢谢。
log4j.rootLogger=warn,stdout,file
则
log4j.appender.stdout.file=E\:mylog.txt
log4j.appender.file.File=E\:mylog.txt
我的配置如下:log4j.rootLogger =debug,stdout
log4j.appender.stdout = org.apache.log4j.FileAppender
log4j.appender.stdout.File=E\:mylog.txt
这样配置是正确的(我已经测试过了),我是想问log4j.appender.stdout.File中的File从哪儿来的?
log4j.appender.file.File=E\:mylog.txt
threshold="debug"> <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%t] [%c{1}] %m%n" />
</layout>
</appender>
<appender name="ASYNC_CONSOLE" class="org.apache.log4j.AsyncAppender">
<param name="BufferSize" value="8192"/>
<appender-ref ref="CONSOLE" />
</appender> <appender name="FILE" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="/home/x/log/server.log" />
<param name="Append" value="true" />
<param name="DatePattern" value="'.'yyyy-MM-dd" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%t] [%c{1}] %m%n" />
</layout>
</appender> <root>
<level value="INFO" />
<appender-ref ref="CONSOLE" />
</root>
</log4j:configuration>log4j.dtd 在 log4j.jar 包中可以找到,拿出来跟 log4j.xml 放在一起,那么在 eclipse 编辑时就会有自动提示的。