使用org.apache.log4j.FileAppender能够把日志写到文件中:apache
immediateFlush
这个标志默认为true,是否每次有消息产生都自动flush到文件中encoding
字符编码threshold
appender的阈值thresholdFilename
日志文件的名称fileAppend
默认设置为true,全部的日志都输出到相同的文件bufferedIO
是否启用缓冲区,默认是falsebufferSize
若是启用了缓冲区,设置缓冲区的大小。默认是8kb.##### Define the root logger with appender file log4j.rootLogger = DEBUG, FILE ##### Define the file appender log4j.appender.FILE=org.apache.log4j.FileAppender ##### Set the name of the file log4j.appender.FILE.File=${log}/log.out ##### Set the immediate flush to true (default) log4j.appender.FILE.ImmediateFlush=true ##### Set the threshold to debug mode log4j.appender.FILE.Threshold=debug ##### Set the append to false, overwrite log4j.appender.FILE.Append=false ##### Define the layout for file appender log4j.appender.FILE.layout=org.apache.log4j.PatternLayout log4j.appender.FILE.layout.conversionPattern=%m%n
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration> <appender name="FILE" > <param name="file" value="${log}/log.out"/> <param name="immediateFlush" value="true"/> <param name="threshold" value="debug"/> <param name="append" value="false"/> <layout > <param name="conversionPattern" value="%m%n"/> </layout> </appender> <logger name="log4j.rootLogger" additivity="false"> <level value="DEBUG"/> <appender-ref ref="FILE"/> </logger> </log4j:configuration>
app
若是须要把日志文件写入到多个文件中,例如,按照文件的大小,到达必定的阈值后,就写入另外一个文件。编码
那么你可使用apache.log4j.RollingFileAppender类,它继承了FileAppender,并能设置一些属性达到上面的需求。debug
添加的属性以下:日志
##### Define the root logger with appender file log4j.rootLogger = DEBUG, FILE ##### Define the file appender log4j.appender.FILE=org.apache.log4j.RollingFileAppender ##### Set the name of the file log4j.appender.FILE.File=${log}/log.out ##### Set the immediate flush to true (default) log4j.appender.FILE.ImmediateFlush=true ##### Set the threshold to debug mode log4j.appender.FILE.Threshold=debug ##### Set the append to false, should not overwrite log4j.appender.FILE.Append=true ##### Set the maximum file size before rollover log4j.appender.FILE.MaxFileSize=5KB ##### Set the the backup index log4j.appender.FILE.MaxBackupIndex=2 ##### Define the layout for file appender log4j.appender.FILE.layout=org.apache.log4j.PatternLayout log4j.appender.FILE.layout.conversionPattern=%m%n
若是你但愿配置xml文件,那么只要把RollingFileAppender以及它的两个属性添加进去就能够了。code
上面的文件中,最大的文件大小为5kb,当超过这个大小后,就会建立新的文件;而后这个文件被命名为log.1;同理,若是有log.2就会重命名为log.3。若是索引数目最多设置为5,而且已经存在了log.5,那么log.5会被直接删除。xml
若是想要天天更新一下日志文件,那么可使用org.apache.log4j.DailyRollingFileAppender。继承
它增长的属性以下:索引
DatePattern
这个属性声明了命名规则,默认是每一天的半夜24点更新一次这个属性能够按照下面的方式书写:it
'.'yyyy-MM
在每月刚开始的时候更新一次'.'yyyy-MM-dd
天天半夜24点的时候更新'.'yyyy-MM-dd-a
天天12点和24点更新'.'yyyy-MM-dd-HH
每一个小时更新一次'.'yyyy-MM-dd-HH-mm
每分钟更新一次'.'yyyy-ww
每周的第一天更新##### Define the root logger with appender file log4j.rootLogger = DEBUG, FILE ##### Define the file appender log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender ##### Set the name of the file log4j.appender.FILE.File=${log}/log.out ##### Set the immediate flush to true (default) log4j.appender.FILE.ImmediateFlush=true ##### Set the threshold to debug mode log4j.appender.FILE.Threshold=debug ##### Set the append to false, should not overwrite log4j.appender.FILE.Append=true ##### Set the DatePattern log4j.appender.FILE.DatePattern='.' yyyy-MM-dd-a ##### Define the layout for file appender log4j.appender.FILE.layout=org.apache.log4j.PatternLayout log4j.appender.FILE.layout.conversionPattern=%m%n
一样,若是在xml中配置,添加相关的属性便可。