找不到log4j siftAppender输出日志 [英] Cannot find the log4j siftAppender output logs
问题描述
我遵循了教程
我有此代码,但未写入任何日志文件.
I have this code, but no log file was written.
我想念什么?
这是我的代码: https://github.com/elad2109/log4j_sift/blob/master/src/main/java/com/waze/rr_logger/SiftExampleLog4j.java
import org.apache.log4j.Logger;
import org.slf4j.LoggerFactory;
public class SiftExampleLog4j {
static org.apache.log4j.Logger logger = Logger.getLogger(SiftExampleLog4j.class);
public void log() {
BasicConfigurator.configure();
org.apache.log4j.MDC.put("session_id","MyGooApp");
logger.error("example1");
org.apache.log4j.MDC.put("session_id","MyFooApp");
logger.error("example2");
}
}
log4j.properties
log4j.properties
log4j.rootLogger=INFO, sift, osgi:VmLogAppender
# Sift appender
log4j.appender.sift=org.apache.log4j.sift.MDCSiftingAppender
log4j.appender.sift.key=session_id
log4j.appender.sift.default=no_session_id
log4j.appender.sift.appender=org.apache.log4j.FileAppender
log4j.appender.sift.appender.layout=org.apache.log4j.PatternLayout
log4j.appender.sift.appender.layout.ConversionPattern=%d{ISO8601} | %-5.5p | %-16.16t | %-32.32c{1} | %m%n
log4j.appender.sift.appender.file=$\\{session_id\\}.log
log4j.appender.sift.appender.append=true
我希望看到2个输出日志文件:MyGooApp.log
和MyFooApp.log
.但是我在任何地方都找不到它们.
I expect to see 2 output log files: MyGooApp.log
and MyFooApp.log
. However I cannot find them anywhere.
更新
我已经尝试过了:
log4j.appender.sift.appender.file=./$\\{session_id\\}.log
但是我现在看到输出文件:
and yet I see now output files:
推荐答案
这里有多个问题.
-
首先将log4j.properties从项目的根目录移至"
src/resources
".然后您将看到大量相关错误.
First move your log4j.properties from root of project to "
src/resources
". Then you will see a world of relevant errors.
Log4j jar没有此软件包org.apache.log4j.sift
,请将支持的pax日志记录jar添加到您的类路径中.
Log4j jar does not have this package org.apache.log4j.sift
, add supporting pax-logging jar to your classpath.
这也将有助于使用Karaf OSGi MDC或Camel MDC,因为Apache Karaf使用Pax Logging作为日志记录系统. (我不确定如果没有OSGi,它将如何工作)
It will also help to use either Karaf OSGi MDC or Camel MDCbecause Apache Karaf uses Pax Logging as logging system. (I am not sure how it will work without the OSGi though)
您的问题不在此行log4j.appender.sift.appender.file=./$\\{session_id\\}.log
上,只要路径配置正确,./$\\{session_id\\}.log
应该在项目根目录中创建日志文件.
Your problem is not with this line log4j.appender.sift.appender.file=./$\\{session_id\\}.log
, as far as the path goes ./$\\{session_id\\}.log
should create the log file in your project root once you have everything else configured properly.
这篇关于找不到log4j siftAppender输出日志的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!