Sto provando a passare da FileAppender a RollingFileAppender utilizzando log4j2 (accade sia con i contenitori beta3 che beta4).Errore durante il tentativo di creare log4j2 rollingfileappender
l'ho configurato come:
<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>
...
e nel codice, sto cercando di ottenere il logger in questo modo:
Logger logger = LogManager.getLogger(this.getClass());
ma sto ottenendo questa eccezione quando corro iT:
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) at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:76) at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:31) at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:342) at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:301) ... Caused by: java.lang.ClassCastException: org.apache.logging.log4j.core.appender.FileManager cannot be cast to org.apache.logging.log4j.core.appender.rolling.RollingFileManager at org.apache.logging.log4j.core.appender.rolling.RollingFileManager.getFileManager(RollingFileManager.java:73) at org.apache.logging.log4j.core.appender.RollingFileAppender.createAppender(RollingFileAppender.java:140) ... 18 more
sembra come se il file di configurazione viene letto ed l'appender sta cercando di ottenere creato ma non è sicuro di quello che sto facendo sbagliato
Ho provato a tagliare e incollare la configurazione di RollingFileAppender di altre persone senza alcuna modifica, ma ottengo comunque l'errore sopra riportato.
Grazie.
Questo sembra corretto. Apparentemente (come in 2.3) non è possibile avere due "Appenders" diversi con lo stesso 'fileName' – MikeW