简体   繁体   English

如何使log4j滚动到日志文件名或模式?

[英]How do I get log4j rolled over log file name or pattern?

I was able to get the current log file name with this fragment of code: 我可以使用以下代码片段获取当前的日志文件名:

Enumeration allAppenders = org.apache.log4j.Logger.getRootLogger().getAllAppenders();

while (allAppenders.hasMoreElements())
{
   Object appender = allAppenders.nextElement();

   if (appender instanceof FileAppender)
   {
      File logFile = new File(((FileAppender) appender).getFile());
      break;
   }
}

But if I have rolled over log files, how do I get their names? 但是,如果我将日志文件翻转了,该如何获取它们的名称?

It seems like it's not guaranteed that rolled over log files start with logFile.getName() as its prefix. 似乎不能保证滚动的日志文件以logFile.getName()作为前缀开头。

我认为您应该检查org.apache.log4j.RollingFileAppender和/或org.apache.log4j.DailyRollingFileAppender (取决于您使用的滚动类型),并使用自己的特定方法,例如,对于DailyRollingFileAppender使用getDatePattern()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM