我正在将项目从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".
这方面的任何帮助都会很棒......提前致谢。
答案 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