log4j2 配置未将以 org 开头的包记录到文件中
log4j2 configuration not logging package starting with org to file
我正在将一个项目从 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".
在这方面的任何帮助都会很棒...提前致谢。
您已将 off
记录转入 org
包。更改此行:
<Logger name="org" level="off" additivity="false">
通过以下方式:
<Logger name="org" level="error" additivity="false">
如果您使用 Struts 1.x,这将使用 Apache Commons Logging。所以你需要一个 bridge
我正在将一个项目从 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".
在这方面的任何帮助都会很棒...提前致谢。
您已将 off
记录转入 org
包。更改此行:
<Logger name="org" level="off" additivity="false">
通过以下方式:
<Logger name="org" level="error" additivity="false">
如果您使用 Struts 1.x,这将使用 Apache Commons Logging。所以你需要一个 bridge