【发布时间】:2015-04-26 19:17:07
【问题描述】:
我有一个具有以下 log4j 配置属性的 Java 应用程序,称为 log4j-DEV.properties:
################################################################
# Root logger option
###############################################################
log4j.rootLogger=ALL, file,stdout
###############################################################
###############################################################
# Logger response
###############################################################
log4j.logger.response=ALL, proxyLog
log4j.additivity.response=false
###############################################################
#############################################################
# APPENDER
#############################################################
# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=C:\\log\\application.log
log4j.appender.file.Threshold = ALL
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=1
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Threshold = ALL
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
# Direct log messages to a log file
log4j.appender.proxyLog=org.apache.log4j.RollingFileAppender
log4j.appender.proxyLog.Threshold = ALL
log4j.appender.proxyLog.File=C:\\log\\proxyLog.log
log4j.appender.proxyLog.MaxFileSize=10MB
log4j.appender.proxyLog.MaxBackupIndex=1
log4j.appender.proxyLog.layout=org.apache.log4j.PatternLayout
log4j.appender.proxyLog.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
我使用 Tomcat 作为应用服务器,并使用参数 -Dlog4j.configuration="log4j-DEV.properties"
启动它当应用程序启动时,文件 C:\log\application.log 和 C:\log\proxyLog.log 被创建,但是是空的,尽管应用程序用说明:
Log log = LogFactory.getLog(getClass());
log.info("Test log");
怎么了?
谢谢大家
【问题讨论】:
-
我将日志附加文件编写为:log4j.appender.toFile.File = logs/resourcepie_logfile.html,注意前倾单斜杠,我得到一个日志文件
-
@svarog 我使用前倾更改了路径,但结果相同:文件已创建但为空。
-
您能否提供一个代码示例,其中包含您如何使用记录器的导入?
-
我以这种方式解决了更改代码的问题:
Logger logger = null;logger = Logger.getRootLogger();logger.info("TEST"); -
如果你能找出它为什么会这样工作,那么请将它作为答案发布。顺便说一句,我正在使用日志管理器,例如: private static final Logger logger = LogManager.getLogger(ClassName.class.getName());我有点好奇它为什么起作用