【问题标题】:log4j - Empty log file -log4j - 空日志文件 -
【发布时间】: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.logC:\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());我有点好奇它为什么起作用

标签: java tomcat logging log4j


【解决方案1】:

我将代码更改为:

Log log = LogFactory.getLog(getClass());
log.info("Test log");

Logger logger = null; 
logger = Logger.getRootLogger(); 
logger.info("TEST");

log4j 配置很好,我更改了应用程序的行为以便直接使用 log4j 类,现在日志显示正确。

谢谢

【讨论】:

  • 我用的是sl4j,碰巧比直接用l4j难用!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-09-10
  • 2011-05-23
  • 1970-01-01
  • 1970-01-01
  • 2019-02-04
  • 2012-07-29
  • 1970-01-01
相关资源
最近更新 更多