2011-11-16 16 views
5

मैं log4j से स्थानांतरण कर रहा हूँ logback को तो मैं तुम्हें वापस log4j गुण प्रारूप आप Logback परियोजना स्थल पर the log4j.properties to logback.xml translator उपयोग कर सकते हैं करने के लिए हाथ से अनुवाद कर सकते हैं, तो logback.xml कोlog4j.xml को logback.xml में कैसे परिवर्तित करें?

+0

कृपया अपने प्रश्न को फिर से लिखें: सॉफ़्टवेयर अनुशंसाएं यहां विषय-वस्तु हैं। – user2284570

उत्तर

0

मेरी log4j.xml बदलना होगा।

+1

मुझे इसके बारे में पता है .. वैसे भी धन्यवाद। –

2

मुझे एक ही समस्या का सामना करना पड़ा और एक बेहतर समाधान मिला। सबसे पहले आपको एक अद्यतित log4j.xml से शुरू करने की आवश्यकता होगी। मेरे पास अभी भी category और priority टैग जैसी चीजें थीं, जिन्हें कॉन्फ़िगरेशन में क्रमशः logger और level द्वारा प्रतिस्थापित किया जाना चाहिए। फिर उदाहरण के लिए RollingFileAppender जैसे प्रत्येक विशिष्ट परिशिष्ट हटा दें। आपको बाद में हाथों से उन्हें बदलना होगा।

फिर this blog से अपने log4j.xml फ़ाइल को Xalan और XSLT रूपांतरण फ़िल्टर का उपयोग करके logback.xml फ़ाइल में कनवर्ट करने के लिए निर्देशों का पालन करें। चूंकि इस ब्लॉग की सामग्री मेरे उत्तर के लिए अपेक्षाकृत बहुमूल्य है, इसलिए मैंने व्यक्तिगत रूप से यह सुनिश्चित किया कि यह लेख found in the wayback machine हो सकता है। साथ ही, लेख आवश्यक पुस्तकालयों के संस्करण नहीं देता है। यहाँ एक मैं प्रयोग किया जाता हैं:

  • serializer-2.7.1
  • xalan-2.7.0
  • xercesImpl-2.6.2
  • एक्सएमएल-apis-1.3.02

और यहां कमांड लाइन है जो मेरे लिए काम करती है (उसी फ़ोल्डर में निष्पादित किया गया जहां सभी पुस्तकालयों और संसाधन थे:

java -classpath xalan-2.7.0.jar org.apache.xalan.xslt.Process -IN log4j.xml -XSL log4j-to-logback.xsl -OUT logback.xml 

अब अधिकांश काम पहले से ही किया जा चुका है। सबसे पहले मैंने सभी लॉगर्स को पुनर्गठित किया जैसे वे मूल रूप से आगे की तुलना के लिए मूल log4j.xml फ़ाइल में थे। तब मैंने विशेष परिशिष्ट हाथ से बदल दिया। यह दिखने से आसान है, documentation बल्कि स्पष्ट है। यहाँ एक उदाहरण है (सबसे अधिक जटिल मैं वास्तव में का सामना करना पड़ा):

<!-- Log4J Configuration --> 
<appender name="myAppender" class="org.apache.log4j.RollingFileAppender"> 
    <param name="File" value="${catalina.base}/logs/myApp.log" /> 
    <param name="Append" value="true" /> 
    <param name="MaxFileSize" value="20MB" /> 
    <param name="MaxBackupIndex" value="10" /> 
    <layout class="org.apache.log4j.PatternLayout"> 
     <param name="ConversionPattern" value="%d %X{param} %-5p %m%n" /> 
    </layout> 
     <filter class="org.apache.log4j.varia.StringMatchFilter"> 
       <param name="StringToMatch" value="PATTERN1" /> 
       <param name="AcceptOnMatch" value="true" /> 
     </filter> 
     <filter class="org.apache.log4j.varia.StringMatchFilter"> 
       <param name="StringToMatch" value="PATTERN2" /> 
       <param name="AcceptOnMatch" value="true" /> 
     </filter> 
    <filter class="org.apache.log4j.varia.DenyAllFilter"/> 
</appender> 


<!-- Logback configuration --> 
<appender name="myAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
    <file>${catalina.base}/logs/myApp.log</file> 
    <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> 
     <fileNamePattern>${catalina.base}/logs/myApp.log.%i</fileNamePattern> 
     <minIndex>1</minIndex> 
     <maxIndex>10</maxIndex> 
    </rollingPolicy> 
    <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> 
     <maxFileSize>20MB</maxFileSize> 
    </triggeringPolicy> 
    <filter class="ch.qos.logback.core.filter.EvaluatorFilter">  
     <evaluator> <!-- defaults to type ch.qos.logback.classic.boolex.JaninoEventEvaluator --> 
      <expression>return message.contains("PATTERN1");</expression> 
     </evaluator> 
     <OnMismatch>NEUTRAL</OnMismatch> 
     <OnMatch>ACCEPT</OnMatch> 
    </filter> 
    <filter class="ch.qos.logback.core.filter.EvaluatorFilter">  
     <evaluator> <!-- defaults to type ch.qos.logback.classic.boolex.JaninoEventEvaluator --> 
      <expression>return message.contains("PATTERN2");</expression> 
     </evaluator> 
     <OnMismatch>DENY</OnMismatch> 
     <OnMatch>ACCEPT</OnMatch> 
    </filter> 
    <encoder> 
     <pattern>%d %X{param} %-5p %m%n</pattern> 
    </encoder> 
</appender> 

एनबी: आपके विन्यास मेरे जैसे मूल्यांकनकर्ता फिल्टर के उपयोग की आवश्यकता है, तो आप घोषित करने के लिए की आवश्यकता होगी janino और कॉमन्स-संकलक (एक ही संस्करण slf4j के रूप में) आपकी परियोजना के पुस्तकालयों में

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