繁体   English   中英

log4j 找不到 appender

[英]log4j doesn't find appenders

我总是尝试使用正式和结构化的日志 api 是一场噩梦(这解释了为什么这么多人只是打印到控制台)

我正在尝试在我的项目中使用 log4j

实例化我做的记录器:

   private static final Logger log = LoggerFactory.getLogger(Instagram.class.getPackage().getName());

当我想注册一个活动时,我会这样做:

log.info("some information");

我在 src 文件夹中有一个log4j.properties文件,例如:

log4j.logger.com.tomatechines.instagramapi.api = INFO, CONSOLE, FILE, ERROR

log4j.rootLogger = INFO, FILE, ERROR

log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender
log4j.appender.FILE.DatePattern = yyyy-MM-dd'.log'
log4j.appender.FILE.File = logs/log-
log4j.appender.FILE.layout = org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%d{HH:mm:ss.SSS} %-5p %C{1}:%L - %m%n

log4j.appender.ERROR=org.apache.log4j.DailyRollingFileAppender
log4j.appender.ERROR.DatePattern = yyyy-MM-dd'.log'
log4j.appender.ERROR.File = logs/errorlog-
log4j.appender.ERROR.layout = org.apache.log4j.PatternLayout
log4j.appender.ERROR.layout.conversionPattern=%d{HH:mm:ss.SSS} %-5p %C{1}:%L - %m%n
log4j.appender.ERROR.Threshold=WARN

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.conversionPattern=%d{HH:mm:ss.SSS} %-5p %C{1}:%L - %m%n

但是当代码运行时,打印到控制台或文件的唯一内容是:

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

为什么它找不到我的文件,我设置了 3 个 appender,为什么它只能找到一个

首先,我可以看到您正在使用带有 log4j 1.2.x 的 SLF4J,因为您正在使用LoggerFactory.getLogger实例化记录器。 如果您只想使用 log4j 1.2.x,您应该使用Logger.getLogger获取记录器。 确保您已从org.apache.log4j包中导入类。

您还必须确保已将log4j.properties文件放在类路径下。 我认为你应该先尝试一个非常简单的配置,以避免配置问题。 就像是:

# Root logger option
log4j.rootLogger=INFO, stdout

# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
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

您的问题可能与log4j.properties文件的位置有关。

您的配置文件很好; 问题很简单,该配置文件在运行时未包含在您的类路径中。

您应该将log4j.properties文件放在src/main/resources文件夹下。

(如果您使用标准的maven或gradle设置,否则取决于您使用的IDE)

暂无
暂无

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

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