一定时间产生日志文件
# Set root logger level to ERROR and its only appender to A1.
log4j.rootLogger=ERROR,R
# R is set to be a DailyRollingFileAppender.
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=backup.log
log4j.appender.R.DatePattern = '.'yyyy-MM-dd
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
以上配置是每天产生一个备份文件。其中备份文件的名字叫backup.log。 www_bitscn_com
具体的效果是这样:当天的日志信息记录在backup.log文件中,前一天的记录在名称为 backup.log.yyyy-mm-dd 的文件中。
类似的,如果需要每月产生一个文件可以修改上面的配置:
将
log4j.appender.R.DatePattern = '.'yyyy-MM-dd
改为
log4j.appender.R.DatePattern = '.'yyyy-MM
日志文件大小自动产生新日志文件
# Set root logger level to ERROR and its only appender to A1.
log4j.rootLogger=ERROR,R
# R is set to be a RollingFileAppender.
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=backup.log
#log4j.appender.R.MaxFileSize=100KB //日志文件大小
# Keep one backup file
log4j.appender.R.MaxBackupIndex=1 //一个备份文件
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
log4j 2: 参数化输出文件
<?xml version="1.0" encoding="UTF-8"?> <!-- status=debug 可以查看log4j的装配过程 --> <configuration status="off"> <properties> <property name="LOG_HOME">/log/fish</property> <!-- 日志备份目录 --> <property name="BACKUP_HOME">{LOG_HOME}/backup</property> </properties> <appenders> <!-- 定义控制台输出 --> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="%date{yyyy-MM-dd HH:mm:ss} %level [%thread][%class{36}:%line] - %msg%n" /> </Console> <!-- 程序员调试日志 --> <RollingFile name="DevLog" fileName="logs/debug_${sys:app.name}" filePattern="logs/debug_${sys:app.name}-%d{MM-dd-yyyy}-%i.log"> <PatternLayout pattern="%date{yyyy-MM-dd HH:mm:ss} %level [%thread][%class{36}:%line] - %msg%n" /> <SizeBasedTriggeringPolicy size="50MB"/> </RollingFile> <!-- 游戏产品数据分析日志 --> <RollingFile name="ProductLog" fileName="logs/${sys:app.name}" filePattern="logs/${sys:app.name}-%d{MM-dd-yyyy}-%i.log"> <PatternLayout pattern="%date{yyyy-MM-dd HH:mm:ss} %level [%thread][%class{36}:%line] - %msg%n" /> <SizeBasedTriggeringPolicy size="50MB"/> </RollingFile> </appenders> <loggers> <!-- 3rdparty Loggers --> <logger name="org.springframework.core" level="warn"> </logger> <logger name="org.springframework.beans" level="warn"> </logger> <logger name="org.apache.commons.beanutils" level="warn"> </logger> <logger name="org.eclipse.jetty" level="warn"> </logger> <logger name="org.springframework.context" level="info"> </logger> <logger name="net.sf.json" level="warn"> </logger> <logger name="org.apache.xmlrpc" level="warn"> </logger> <logger name="org.apache.http" level="warn"> </logger> <!-- Game Stat logger <logger name="cn.cstnet" level="debug" additivity="false"> <appender-ref ref="ProductLog" /> </logger>--> <!-- Root Logger --> <root level="DEBUG"> <appender-ref ref="DevLog" level="debug" /> <appender-ref ref="ProductLog" level="warn" /> <appender-ref ref="Console" level="debug" /> </root> </loggers> </configuration>
其中 sys:app.home , 可通过 java -Dapp.home 传入