cant overwite file_fileappender rollover_罗氏file max ov

电脑杂谈  发布时间:2017-02-13 04:00:43  来源:网络整理
fileappender rolloverfileappender rollover

Hi all!

I'm getting started with log4j programming and i have my first doubt.

I want a logger size based triggering policy and time based rolling policyso i'm using SizeBasedTriggeringPolicy and TimeBasedRollingPolicy in thefollowing way:

Logger root = Logger.getRootLogger();

root.addAppender(new ConsoleAppender(new PatternLayout()));

PatternLayout layout = new PatternLayout("%c{1} - %m%n");

RollingFileAppender = new RollingFileAppender();

.setLayout(layout);

TimeBasedRollingPolicy tbrp = new TimeBasedRollingPolicy();

SizeBasedTriggeringPolicy sbtp = new SizeBasedTriggeringPolicy();

tbrp.setActiveFileName("my_log");

tbrp.setFileNamePattern("my_log_%d{yyyy-MM-dd_HH_mm_ss}");

sbtp.setMaxFileSize(100);

.setRollingPolicy(tbrp);

.setTriggeringPolicy(sbtp);

.activateOptions();

root.addAppender();

for (int i = 0; i < 200; i++) {

try{

Thread.sleep(1000);

}catch(Exception e){}

if (i > 10) {

logger.debug("Hello " + i);

} else if (i > 100) {

logger.debug("Hello " + i);

}

}

An i get the following error when max size is reached:

The date pattern is [yyyy-MM-dd_HH_mm_ss] from file name pattern[my_log_%d{yy

-MM-dd_HH_mm_ss}].

Rollover every second.

getActiveLogFileName called

Active log file name: my_log

Hello 11

Hello 12

Hello 13

Hello 14

About to rollover

rollover called

compressionMode: 0

activeFileName: my_log

currentFileName: null

Exception in thread "main" java.lang.NullPointerException

at java.io.File.<init>(File.java:180)

at org.apache.log4j.rolling.helpers.Util.rename(Util.java:68)

at org.apache.log4j.rolling.TimeBasedRollingPolicy.rollover(TimeBasedR

lingPolicy.java:175)

at org.apache.log4j.rolling.RollingFileAppender.rollover(RollingFileAp

nder.java:124)

at org.apache.log4j.rolling.RollingFileAppender.subAppend(RollingFileA

ender.java:153)

at org.apache.log4j.WriterAppender.append(WriterAppender.java:181)

at org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:27

at org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppende

(AppenderAttachableImpl.java:100)

at org.apache.log4j.Category.callAppenders(Category.java:253)

at org.apache.log4j.Category.forcedLog(Category.java:464)

at org.apache.log4j.Category.debug(Category.java:317)

at com.foo.Pruebas_log4j.main(Pruebas_log4j.java:101)

I could see TimeBasedRollingPolicy 'changes' the logfile name in methodisTriggeringEvent but only sizebased triggering event method is invoked asis the only triggering policy configured for RollingFileAppender.

Am i wrong or may i overwrite timebasedrollingpolicy to force the change ofthe logfile name when rollover() is invoked?

Thanks for all

_________________________________________________________________

Add photos to your e-mail with MSN 8. Get 2 months FREE*.?page=features/featuredemail


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-32112-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...