【问题标题】:Log4j No appenders could be found for loggerLog4j 找不到记录器的附加程序
【发布时间】:2014-11-15 08:58:59
【问题描述】:

我将在一个应用程序中使用两个不同的日志文件。 Log4j 配置文件是这样的:

log4j.rootLogger= false

log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File= D\:\\default.log
log4j.appender.file.DatePattern='.'yyyy-MM-dd
log4j.appender.file.Append=true
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


log4j.appender.instLog = org.apache.log4j.FileAppender
log4j.appender.instLog.File= D\:\\install.log
log4j.appender.instLog.DatePattern='.'yyyy-MM-dd
log4j.appender.instLog.Append=true
log4j.appender.instLog.layout=org.apache.log4j.PatternLayout
log4j.appender.instLog.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n


log4j.appender.updateLog = org.apache.log4j.FileAppender
log4j.appender.updateLog.File= D\:\\update.log
log4j.appender.updateLog.DatePattern='.'yyyy-MM-dd
log4j.appender.updateLog.Append=true
log4j.appender.updateLog.layout=org.apache.log4j.PatternLayout
log4j.appender.updateLog.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

java代码是这样的:

public class AppTest {
    private static Logger update = Logger.getLogger("update.log");
    private static Logger install = Logger.getLogger("install.log");
    public static void main(String[] args) {
        update.info("Update");
        install.info("Install");

    }
}

但在运行时我得到了这个:

log4j:WARN No appenders could be found for logger (update.log).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

哪里错了?

【问题讨论】:

  • 粘贴整个 log4j.xml 文件。
  • @almasshaikh 我只是把 log4j.properteise 的所有内容都放了

标签: java logging log4j


【解决方案1】:

update.log 是附加程序的名称,而不是记录器的名称。您必须将您定义的附加程序附加到某些记录器。

【讨论】:

    【解决方案2】:

    在您的 log4j.properties 中,您需要使用如下类别:

    log4j.category.updateLogger=TRACE, debugLog
    log4j.additivity.updateLogger=false
    
    log4j.category.installLogger=DEBUG, reportsLog
    log4j.additivity.installLogger=false
    

    在你的 java 代码中,你应该使用类似的东西:

    private static Logger update = Logger.getLogger("updateLogger");
    private static Logger install = Logger.getLogger("installLogger");
    

    【讨论】:

      猜你喜欢
      • 2012-09-13
      • 2015-07-23
      • 1970-01-01
      • 2015-06-11
      • 1970-01-01
      • 2018-03-21
      • 2018-03-18
      相关资源
      最近更新 更多