最近发现很奇怪的现象,Log4j我设置如下
log4j.rootLogger=ERROR,stdout
log4j.logger.NoModule=INFO,file_NM
log4j.logger.infos=INFO,infos
log4j.logger.error=INFO,errorlog4j.appender.infos=org.apache.log4j.DailyRollingFileAppender
log4j.appender.infos.File=${WORKDIR}/logs/infos.log
log4j.appender.infos.DatePattern='.'yyyy-MM-dd-a
log4j.appender.infos.layout=org.apache.log4j.PatternLayout
log4j.appender.infos.layout.ConversionPattern=%-5r [%t][%d{ISO8601}]-[%5p]%x-[%m]%n 没半天切换一个文件,但是发现在中午12点的时候切换,下午12点过后,一直在写上午的那个日志文件.
Log4j版本是log4j-1.2.11.jar
JDK版本是:
java version "1.6.0_07"
Diablo Java(TM) SE Runtime Environment (build 1.6.0_07-b02)
Diablo Java HotSpot(TM) Client VM (build 10.0-b23, mixed mode, sharing)
运行系统是:
FreeBSD noticeserverpri.cqrcb.com 7.1-RELEASE FreeBSD 7.1-RELEASE
#1: Thu Mar 12 08:28:35 CST 2009
[email protected]:/usr/src/sys/i386/compile/RS i386
log4j.rootLogger=ERROR,stdout
log4j.logger.NoModule=INFO,file_NM
log4j.logger.infos=INFO,infos
log4j.logger.error=INFO,errorlog4j.appender.infos=org.apache.log4j.DailyRollingFileAppender
log4j.appender.infos.File=${WORKDIR}/logs/infos.log
log4j.appender.infos.DatePattern='.'yyyy-MM-dd-a
log4j.appender.infos.layout=org.apache.log4j.PatternLayout
log4j.appender.infos.layout.ConversionPattern=%-5r [%t][%d{ISO8601}]-[%5p]%x-[%m]%n 没半天切换一个文件,但是发现在中午12点的时候切换,下午12点过后,一直在写上午的那个日志文件.
Log4j版本是log4j-1.2.11.jar
JDK版本是:
java version "1.6.0_07"
Diablo Java(TM) SE Runtime Environment (build 1.6.0_07-b02)
Diablo Java HotSpot(TM) Client VM (build 10.0-b23, mixed mode, sharing)
运行系统是:
FreeBSD noticeserverpri.cqrcb.com 7.1-RELEASE FreeBSD 7.1-RELEASE
#1: Thu Mar 12 08:28:35 CST 2009
[email protected]:/usr/src/sys/i386/compile/RS i386
DailyRollingFileAppender appender=new DailyRollingFileAppender(null,"e:\\test.login","'.'yyyy-MM-dd-a");
Method method=DailyRollingFileAppender.class.getDeclaredMethod("computeCheckPeriod", new Class[]{});
method.setAccessible(true);
System.out.println(method.invoke(appender, null));
method=DailyRollingFileAppender.class.getDeclaredMethod("rollOver", new Class[]{});
method.setAccessible(true);
method.invoke(appender, null);
}
如果到切换时间点的时候,服务器仍然正常运行,log应该会写到新文件里面。
如果这期间重启服务,再跑程序,那么程序仍然会写到原来的文件里面。