在java中,如何将日志写入log4j的特定文件追加器?

Vij*_*ana 6 java logging log4j

如果log4j属性具有多个文件追加程序,那么在Java中如何确保将日志写入特定文件中.

log4j.rootLogger=INFO,out 

log4j.appender.SUCCESS_FILE=org.apache.log4j.FileAppender
log4j.appender.SUCCESS_FILE.File=${dd.log.dir}/success.log

log4j.appender.VALID_FILE=org.apache.log4j.FileAppender
log4j.appender.VALID_FILE.File=${dd.log.dir}/valid_error.log

log4j.appender.TEMP_FILE=org.apache.log4j.FileAppender
log4j.appender.TEMP_FILE.File=${dd.log.dir}/Temp_error.tmp_log
Run Code Online (Sandbox Code Playgroud)

在Java类中,我可以做些什么来编写一些消息,比方说,SUCCESS_FILE和一些消息到TEMP_FILE

Logger log = Logger.getLogger(Test.class);
log.debug("This message should go to SUCCESS_FILE");
log.debug("This message should go to TEMP_FILE");
Run Code Online (Sandbox Code Playgroud)

Jac*_*cko 7

这可能会有所帮助: -

log4j.appender.successLog=org.apache.log4j.FileAppender
log4j.appender.successLog.File=${dd.log.dir}/success.log

log4j.appender.tempLog=org.apache.log4j.FileAppender
log4j.appender.tempLog.File=${dd.log.dir}/Temp_error.tmp_log

log4j.category.successLogger=INFO, successLog
log4j.additivity.successLogger=false

log4j.category.tempLogger=INFO, tempLog
log4j.additivity.tempLogger=false
Run Code Online (Sandbox Code Playgroud)

访问他们像: -

static final Logger successLog = Logger.getLogger("successLogger");
static final Logger tempLog = Logger.getLogger("tempLogger");
Run Code Online (Sandbox Code Playgroud)