[英]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.