Tôi đang cố gắng chuyển từ sử dụng FileAppender sang RollingFileAppender bằng cách sử dụng log4j2 (xảy ra cả với beta3 và beta4 lọ).gặp lỗi khi cố gắng tạo log4j2 rollingfileappender
Tôi có nó cấu hình như:
<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>
...
và trong các mã, tôi đang cố gắng để có được những logger theo cách này:
Logger logger = LogManager.getLogger(this.getClass());
nhưng tôi nhận được ngoại lệ này khi tôi chạy nó:
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
Dường như tập tin cấu hình đang được đọc và ứng dụng đang cố gắng tạo ra nhưng không chắc tôi đang làm gì g sai.
Tôi đã thử cắt và dán cấu hình RollingFileAppender của người khác với bất kỳ sửa đổi nào nhưng tôi vẫn gặp phải lỗi ở trên.
Cảm ơn.
Điều này có vẻ đúng. Rõ ràng (như của 2.3) bạn không thể có hai 'Appender' khác nhau với cùng một' fileName' – MikeW