我想使用log4j来进行记录我的Java项目。 我创建了一个包含以下内容的src目录下一个log4j.properties文件:
# Root logger option
log4j.rootLogger=INFO, file, stdout
log4j.logger.DEFAULT_LOGGER=INFO,file2
# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=file.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
log4j.appender.file2=org.apache.log4j.FileAppender
log4j.appender.file2.File=file2.log
log4j.appender.file2.layout=org.apache.log4j.PatternLayout
log4j.appender.file2.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
例如,我只希望在我的主要方法使用“DEFAULT_LOGGER”。 所以我写了:
static Logger log = Logger.getLogger("DEFAULT_LOGGER");
log.fatal("Process Logger");
但是,当我执行的主要方法我打印消息“过程记录器”所有的Appender(标准输出,文件和文件2),但我只是想打印出来,以文件2。 我怎样才能做到这一点或更好的RO说我该怎么办错了吗?
第二点是,当我执行主方法的第二个时间,它不会覆盖文件和file2,它甫一添加文本文件内的线。 我怎样才能避免这种情况?