Log4j 2未从可执行jar记录

时间:2014-02-24 12:59:07

标签: java eclipse logging log4j2

我很困惑。我使用log4j 2进行日志记录,当我用eclipse启动我的程序时,一切正常。但是在将源打包到jar之后,没有日志写入控制台或文件。

这是jar的清单:

Manifest-Version: 1.0
Built-By: s
Build-Jdk: 1.6.0_45
Class-Path: settings settings/log4j2.xml lib/poi-3.9.ja
 r lib/commons-codec-1.5.jar lib/mysql-connector-java-5.1.29.jar lib/l
 og4j-api-2.0-rc1.jar lib/log4j-core-2.0-rc1.jar
Created-By: Apache Maven 3.0.4
Main-Class: application.Start
Archiver-Version: Plexus Archiver

我的log4j2.xml在这里:

    <?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
  <Appenders>
    <Console name="Console" target="SYSTEM_OUT">
      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} %C{1}.%M{1}:%L{1} - %msg%n"/>
    </Console>
    <RollingFile  name="app" fileName="log/app.log" bufferedIO="true" filePattern="log/app-%i.log.gz">
        <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} %C{1}.%M{1}:%L{1} - %msg%n"/>
        <Policies>
            <SizeBasedTriggeringPolicy size="500 KB"/>
      </Policies>
    </RollingFile > 
  </Appenders>
  <Loggers>
    <Logger name="app" level="trace">
        <AppenderRef ref="app" />
    </Logger>  
    <Root level="trace">
      <AppenderRef ref="Console"/>
    </Root>
  </Loggers>
</Configuration>

lib中的所有其他jar都绑定正确,应用程序运行良好。我对log4j做错了什么?

2 个答案:

答案 0 :(得分:1)

我现在有一个解决方案:问题是我的类路径。我已经改变了

Class-Path: settings

Class-Path: settings/

说明xml所在的目录就足够了。

答案 1 :(得分:0)

尝试从-Dlog4j.debug=truedetails)开始。然后log4j会在加载配置时打印大量有关配置的信息。

使用log4j 2,尝试<Configuration status="DEBUG">