log4j配置分为两种:xml文件和properties
首先附上log4j.properties
log4j.rootLogger=error,stdout,D,R,S,T //目前的日志级别为error,可以根据实际情况调整
### stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{HH:mm:ss,SSS} [%-4p] %m (%F:%L)%n
#file
log4j.appender.D=org.apache.log4j.RollingFileAppender
log4j.appender.D.File=log/debug.log
log4j.appender.D.MaxFileSize=102400KB
log4j.appender.D.MaxBackupIndex=10
log4j.appender.D.Threshold=debug
log4j.appender.D.layout=org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern=%d %-5p (%F:%L) - %m%n
log4j.appender.D.BufferedIO=true
log4j.appender.D.BufferSize=8192
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=log/info.log
log4j.appender.R.MaxFileSize=102400KB
log4j.appender.R.MaxBackupIndex=10
log4j.appender.R.Threshold=info
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d %-5p (%F:%L) - %m%n
log4j.appender.R.BufferedIO=true
log4j.appender.R.BufferSize=8192
log4j.appender.S=org.apache.log4j.RollingFileAppender
log4j.appender.S.File=log/warn.log
log4j.appender.S.MaxFileSize=102400KB
log4j.appender.S.MaxBackupIndex=10
log4j.appender.S.Threshold=warn
log4j.appender.S.layout=org.apache.log4j.PatternLayout
log4j.appender.S.layout.ConversionPattern=%d %-5p (%F:%L) - %m%n
log4j.appender.S.BufferedIO=true
log4j.appender.S.BufferSize=8192
log4j.appender.T=org.apache.log4j.RollingFileAppender
log4j.appender.T.File=log/error.log
log4j.appender.T.MaxFileSize=102400KB
log4j.appender.T.MaxBackupIndex=10
log4j.appender.T.Threshold=error
log4j.appender.T.layout=org.apache.log4j.PatternLayout
log4j.appender.T.layout.ConversionPattern=%d %-5p (%F:%L) - %m%n
log4j.appender.T.BufferedIO=true
log4j.appender.T.BufferSize=8192
在java中如果要重新加载修改之后的配置文件:
附上log4j.xml,目前有一个问题,我想在配置中使用变量,但是还没有查到如何使用,比如我想把日志级别定义成变量,到时候只用改一处就可以了!
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<!-- <Properties>
<Property name="level">info</Property>
</Properties> -->
<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss:SSS} -(%F:%L) %5p - %m%n"/>
</layout>
</appender>
<appender name="DEBUG" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="./log/debug.log"/>
<param name="Append" value="true"/>
<param name="MaxFileSize" value="10240KB"/>
<param name="MaxBackupIndex" value="10"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss:SSS} -(%F:%L) %5p - %m%n"/>
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="DEBUG" />
<param name="LevelMax" value="DEBUG" />
</filter>
</appender>
<appender name="INFO" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="./log/info.log"/>
<param name="Append" value="true" />
<param name="MaxFileSize" value="10240KB"/>
<param name="MaxBackupIndex" value="10"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss:SSS} -(%F:%L) %5p - %m%n"/>
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="INFO" />
<param name="LevelMax" value="INFO" />
</filter>
</appender>
<appender name="WARN" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="./log/warn.log"/>
<param name="Append" value="true"/>
<param name="MaxFileSize" value="10240KB"/>
<param name="MaxBackupIndex" value="10"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss:SSS} -(%F:%L) %5p - %m%n"/>
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="WARN" />
<param name="LevelMax" value="WARN" />
</filter>
</appender>
<appender name="ERROR" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="./log/error.log"/>
<param name="Append" value="true"/>
<param name="MaxFileSize" value="10240KB"/>
<param name="MaxBackupIndex" value="10"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss:SSS} -(%F:%L) %5p - %m%n"/>
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="ERROR" />
<param name="LevelMax" value="ERROR" />
</filter>
</appender>
<appender name="gps" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="./log/device_statushis.log"/>
<param name="Append" value="true"/>
<param name="MaxFileSize" value="10240KB"/>
<param name="MaxBackupIndex" value="5"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%m%n"/>
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="FATAL" />
<param name="LevelMax" value="FATAL" />
</filter>
</appender>
<appender name="gpshide" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="./log/device_statushis_invisible.log"/>
<param name="Append" value="true"/>
<param name="MaxFileSize" value="10240KB"/>
<param name="MaxBackupIndex" value="5"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%m%n"/>
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="FATAL" />
<param name="LevelMax" value="FATAL" />
</filter>
</appender>
<!--这样可以把特殊的日志打印到另外的文件中 -->
<logger name="com.sanshi.mysql.GpsDao" additivity="true">
<level value="info" />
<appender-ref ref="gps"/>
</logger>
<logger name="com.sanshi.mysql.GpshideDao" additivity="true">
<level value="info" />
<appender-ref ref="gpshide"/>
</logger>
<!-- <category name="com.dina.dse.handler.GPSHandler">
<priority value="FATAL"/>
<appender-ref ref="gps"/>
</category> -->
<root>
<priority value="info" />
<appender-ref ref="STDOUT"/>
<appender-ref ref="DEBUG"/>
<appender-ref ref="INFO"/>
<appender-ref ref="WARN"/>
<appender-ref ref="ERROR"/>
</root>
</log4j:configuration>
java中重新加载:
DOMConfigurator.configure(LOG4J_PATH); //重新加载对应的路径