2013-02-02 13 views
7

बनाने का प्रयास करने में त्रुटि हो रही है, मैं log4j2 (बीटा 3 और बीटा 4 जार के साथ होता है) का उपयोग कर रोलएपफाइलएपेंडर में FileAppender का उपयोग करने से स्विच करने का प्रयास कर रहा हूं।log4j2 रोलिंगफाइलएपेंडर

मैं इसे के रूप में विन्यस्त है

<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> 
     ... 

और कोड में, मैं लकड़हारा इस तरह से प्राप्त करने के लिए कोशिश कर रहा हूँ:

Logger logger = LogManager.getLogger(this.getClass()); 

लेकिन जब मैं चलाने मैं इस अपवाद हो रही है यह:

 
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 

ऐसा लगता है कि कॉन्फ़िग फ़ाइल पढ़ा जा रहा है और appender बनाया पाने के लिए कोशिश कर रहा है, लेकिन यकीन नहीं है कि मैं क्या कर रहा हूँ जी गलत है।

मैंने किसी भी संशोधन के अन्य लोगों के रोलिंगफाइलएपेंडर कॉन्फ़िगरेशन w/o को काटने और चिपकाने का प्रयास किया है, लेकिन मुझे अभी भी उपरोक्त त्रुटि मिलती है।

धन्यवाद।

उत्तर

18

मेरे मामले में कॉन्फ़िगरेशन फ़ाइल में File appenderRollingFile appender के साथ है।

त्रुटि fileName पैरामीटर में था - यह दोनों appenders में एक ही मूल्य है।

+1

यह सही लगता है। जाहिर है (2.3 के रूप में) आपके पास समान 'फ़ाइल नाम' के साथ दो अलग-अलग 'परिशिष्ट' नहीं हो सकते हैं – MikeW

संबंधित मुद्दे