log4j2配置没有记录以org开头的包到文件

时间:2015-03-05 12:59:44

标签: log4j2

我正在将项目从log4j迁移到log4j2。该项目使用的是log4j.properties文件。由于log4j2不支持属性文件,我已经成功编写了一个正确的xml配置文件,我相信...在运行项目时,我注意到从org开始的包中的错误将写入文件的位置现在正在写入控制台。这在log4j版本1中从未发生过。

这里是log4j.properties文件

log4j.rootLogger=ERROR, A1

# Logger for all org packages
log4j.logger.org=ERROR, A2
log4j.additivity.org=false
org.apache.commons.logging.LogFactory=org.apache.commons.logging.impl.LogFactoryImpl

log4j.appender.A1=org.apache.log4j.RollingFileAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d{MMM dd HH:mm:ss} %-5p [%t] %c{2} - %m%n
log4j.appender.A1.File=../webapps/docs/log/app.log
log4j.appender.A1.MaxFileSize=1000KB
log4j.appender.A1.MaxBackupIndex=10

log4j.appender.A2=org.apache.log4j.RollingFileAppender    
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=%d{MMM dd HH:mm:ss} %-5p [%t] %c{2} - %m%n
log4j.appender.A2.File=../webapps/docs/log/org.log
log4j.appender.A2.MaxFileSize=5000KB
log4j.appender.A2.MaxBackupIndex=100

继承了后续的log4j2.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO">
    <Properties>
        <Property name="log-path">/mnt/logs/</Property>
    </Properties>
    <Appenders>         
        <RollingFile name="RootErrorFile" fileName="${log-path}/app.log"
                        filePattern="${log-path}/app-%d{yyyy-MM-dd}-%i.log" >
            <PatternLayout>
                <pattern>%d{dd/MMM/yyyy HH:mm:ss,SSS} %-5p [%t] %c{1}: %m%n</pattern>
            </PatternLayout>
            <Policies>
                <SizeBasedTriggeringPolicy size="10 MB" />
            </Policies>
        </RollingFile>
        <RollingFile name="OrgFile" fileName="${log-path}/org.log"
                        filePattern="${log-path}/org-%d{yyyy-MM-dd}-%i.log" >
            <PatternLayout>
                <pattern>%d{dd/MMM/yyyy HH:mm:ss,SSS} %-5p [%t] %c{1}: %m%n</pattern>
            </PatternLayout>
            <Policies>
                <SizeBasedTriggeringPolicy size="10 MB" />
            </Policies>
        </RollingFile>
    </Appenders>
    <Loggers>           
        <Logger name="org" level="off" additivity="false">
            <appender-ref ref="OrgFile"/>
        </Logger>
        <Root level="error">
            <AppenderRef ref="RootErrorFile"/>          
        </Root>
    </Loggers>
</Configuration>

tomcat控制台上输出的错误的格​​式为

Mar 05, 2015 5:53:54 PM org.apache.commons.digester.Digester error
SEVERE: Parse Error at line 290 column 27: Attribute "msg" is required and must be specified for element type "validator".
org.xml.sax.SAXParseException; systemId: jndi:/localhost/docs/WEB-INF/validator-rules.xml; lineNumber: 290; columnNumber: 27; Attribute "msg" is required and must be specified for element type "validator".

这方面的任何帮助都会很棒......提前致谢。

1 个答案:

答案 0 :(得分:1)

您已将off包裹的记录变为org。改变这一行:

<Logger name="org" level="off" additivity="false">

通过以下内容:

<Logger name="org" level="error" additivity="false">

如果您使用的是Struts 1.x,则使用Apache Commons Logging。所以你需要一个bridge