找不到log4j siftAppender输出日志 [英] Cannot find the log4j siftAppender output logs

查看:231
本文介绍了找不到log4j siftAppender输出日志的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我遵循了教程

我有此代码,但未写入任何日志文件.

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.logMyFooApp.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:

推荐答案

这里有多个问题.

  1. 首先将log4j.properties从项目的根目录移至"src/resources".然后您将看到大量相关错误.

  1. 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆