我正在尝试使用log4j2从使用FileAppender切换到RollingFileAppender(与beta3和beta4 jar一起发生).
我把它配置为:
<RollingFile name="RollingFile" fileName="${logdir}/${filename}"
filePattern="${logdir}/app-%d{yyyy-MM-dd-hh-mm-ss}_%i.log" >
<PatternLayout>
<pattern>%d %p %C{1.} [%t] %m%n</pattern>
</PatternLayout>
<Policies>
<OnStartupTriggeringPolicy/>
</Policies>
<DefaultRolloverStrategy max="20"/>
</RollingFile>
...
<loggers>
<root level="ERROR">
<appender-ref ref="RollingFile"/>
<appender-ref ref="STDOUT"/>
</root>
...
Run Code Online (Sandbox Code Playgroud)
在代码中,我试图以这种方式获取记录器:
Logger logger = LogManager.getLogger(this.getClass());
Run Code Online (Sandbox Code Playgroud)
但是当我运行它时我得到了这个异常:
2013-02-01 17:56:54,773 ERROR Unable to invoke method createAppender in class org.apache.logging.log4j.core.appender.RollingFileAppender for element RollingFile java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.logging.log4j.core.config.BaseConfiguration.createPluginObject(BaseConfiguration.java:723)
at org.apache.logging.log4j.core.config.BaseConfiguration.createConfiguration(BaseConfiguration.java:489)
at org.apache.logging.log4j.core.config.BaseConfiguration.createConfiguration(BaseConfiguration.java:481)
at org.apache.logging.log4j.core.config.BaseConfiguration.doConfigure(BaseConfiguration.java:162)
at org.apache.logging.log4j.core.config.BaseConfiguration.start(BaseConfiguration.java:120)
at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:271)
at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:287)
at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:139) …