Log4J没有创建许多日志文件之一

时间:2013-12-12 20:33:31

标签: java logging jboss log4j

背景

我们在JBoss v7.1.1上部署了一个应用程序。它配置为记录到相同目录中的多个不同日志文件。所有这些都是每天都要翻过来的。我们最近发现,在过去2周左右的时间里,~5个日志文件中的一个从未获得任何日志行(并且没有被翻过来)。

我在这里搜索过,发现没有问题;因此要求新的。

log4j配置: 配置许多其他记录器之一:

#Concise logger
log4j.appender.ConciseLogger=org.apache.log4j.DailyRollingFileAppender
log4j.appender.ConciseLogger.File=../standalone/log/xyzlog/splunk-metrics.log
log4j.appender.ConciseLogger.Append=true
log4j.appender.ConciseLogger.DatePattern='.'yyyy-MM-dd
log4j.appender.ConciseLogger.layout=org.apache.log4j.PatternLayout
log4j.appender.ConciseLogger.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} -%X{txnid}- %m%n
log4j.appender.ConciseLogger.Encoding=UTF-8

在同一配置文件中还有其他日志配置,它们会记录到完全相同的位置。线条如下所示:

..
log4j.appender.CacheManifestLogger.File=../standalone/log/xyzlog/cacheManifest.log
..
..
log4j.appender.APPTXNLOGGER.File=../standalone/log/xyzlog/transactions.log

问题/详细信息

  • 我们有5个不同的日志文件,我们登录到。全部记录到同一个相同的文件夹。
  • 过去两周只有ConciseLogger(上图)停止工作。
  • 完全相同的构建适用于其他(非生产)计算机。在某种程度上,“它在我的机器上工作”; - )

猜测可能出现的问题

  • 磁盘填满了吗?不,磁盘只有20%已满
  • 文件权限?没有,其他文件正在被记录而没有问题
  • 实际代码有问题吗?不太可能,因为事情已经提交给SVN,并且特定于日志记录的代码已经连续几个月没有被触及。这并不能解释为什么在两周之前它就会失败。
  • JBoss服务器日志中有任何log4j特定异常的痕迹吗?不,没找到任何。
  • Log4J Internals:可能会为每个类别生成一个新线程,并且该线程会为此特定类别而死。
    • 在这种情况下有没有办法调试这个?
  • Log4J具体问题?见下文..

调试

  • 使用相同的构建,部署到另一台机器 - Works - 没有日志记录问题!
  • 根据@Matt b's suggestion here,我尝试使用附加-Dlog4j.debug启动JBoss。 我找到了除ConciseLogging以外的每个类别的日志行。这意味着log4j忽略了一个类别。这真的很奇怪。

The lines of the output of grep log4j server.log has been pasted here。在链接的整个输出中,我没有看到任何与ConciseLogging相关的条目。

这是原始的log4j配置文件:http://ideone.com/wiH0VU

我的问题

  • 你们之前有没有经历过这种事情?这是一个log4j错误,它只是拒绝解析许多类别中的一个?
    • 或者上面链接的配置文件有问题吗? (我怀疑它,因为它以前从未失败过)
  • 我可以从这里采取一般调试步骤吗?

环境

  • JBoss v7.1.1
  • Ubuntu 12.04(在Amazon EC2上)
  • Java SDK

1 个答案:

答案 0 :(得分:0)

你重启了JBoss,因为它停止了记录吗?

我有一个问题,一旦缺少日志,我们找不到任何证据表明为什么不应该创建它,我们仍然认为原因是服务器启动不好(可能是那个服务日志是监控没有启动/工作),重新启动后,丢失的日志出现了。