2012-03-26 20 views
4

現在のプロジェクトではlog4j +コモンズログを使用しています。今度はlog4jからLogbackに移行しているので、log4j.propertiesをlogback.xmlに置き換えるか、log4jをSLF4Jに変換する必要がありますか?log4jからログバックへ(マイグレーション)

私はコード前述この

import org.apache.log4j.Level; 
import org.apache.log4j.Logger; 
import org.apache.log4j.Priority; 

public class LoggerUtil 
{ 
    // logger 
    static Logger logger; 

    // applications 

    public static String APP_AccInqSERVICE = "AccInqApp"; 

ようなコードは、それがcommonutilsであるLoggerUtils.javaの一部である持っているコードと同じに保た提案どおり。 は今、この

LoggerUtil.info(LoggerUtil.APP_ACCT_INQ, AccountInqService.class, 
       "searchAccountSnapshot", "method starts...."); 

ようloggingsの利用LoggerUtilsが、私はそれがあるとしてLoggerUtils.javaコードを保ち、log4jのオーバーslf4.jar含めると、今あるlog4j.jarを削除し、それが罰金コンパイルされ、AccInqWebモジュールがあります私はサーバ上にcommonutilsモジュールをデプロイし、addDlogback.configurationFile = setDomainEnv.cmdとlogback jarのC:\ u001 \ isuser \ tesbea \ user_projects \ domains \ iservices 10 \ resources \ logback.xmlにクラスパス上のlogback jarを追加しますしかし、私が使用しているログは取得できません.WLS10.3.0は設定が必要なものがあります。

+0

をlogbackするのlog4jからあなたweb.xml以内にログディレクトリを変更する必要がありますあなたの 'logback.xml'には何がありますか? – madth3

+0

log4j.logger.com.webex.iservices.accinquiry = DEBUG、R、IntegratedServicesLog、stdout、mail log4j.properties LOGBACK.XML: - user1137387

答えて

1

ログバックはlog4jと連携する必要があります

logback-classicモジュールはlog4jの大幅に改良されたバージョンに同化できます。さらに、logback-classicはSLF4J APIをネイティブに実装しているので、log4jやjava.util.logging(JUL)などのログ・フレームワークと他のロギング・フレームワークを容易に切り替えることができます。 logback website

あなたがしたいまず最初にlogbackに切り替えるには

<dependency> 
    <groupId>ch.qos.logback</groupId> 
    <artifactId>logback-classic</artifactId> 
    <version>1.1.3</version> 
</dependency> 

をプロジェクトにjarファイルを追加するか、POM

あなたのリソースフォルダに logback.xmlを追加することです。それは、この

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 

    <property name="USER_HOME" value="C:\\logs\\analyzer" /> 

    <appender name="FILE-THREAD" class="ch.qos.logback.classic.sift.SiftingAppender"> 

     <!-- This is MDC value --> 
     <!-- We will assign a value to 'logFileName' via Java code --> 
     <discriminator> 
      <key>logFileName</key> 
      <defaultValue>head0</defaultValue> 
     </discriminator> 

     <sift> 

      <!-- A standard RollingFileAppender, the log file is based on 'logFileName' at runtime --> 
      <appender name="FILE-${logFileName}" 
      class="ch.qos.logback.core.rolling.RollingFileAppender"> 
      <file>${USER_HOME}/${logFileName}.log</file> 

      <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> 
       <Pattern> 
        %d{yyyy-MM-dd HH:mm:ss} %mdc [%thread] %level %logger{35} - %msg%n 
       </Pattern> 
      </encoder> 

      <rollingPolicy 
       class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> 
       <FileNamePattern>${USER_HOME}/${logFileName}.%i.log.zip 
       </FileNamePattern> 
       <MinIndex>1</MinIndex> 
       <MaxIndex>10</MaxIndex> 
      </rollingPolicy> 

      <triggeringPolicy 
       class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> 
       <MaxFileSize>10MB</MaxFileSize> 
      </triggeringPolicy> 

      </appender> 

     </sift> 
    </appender> 

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 
     <layout class="ch.qos.logback.classic.PatternLayout"> 
      <Pattern> 
       %-5level %logger{36} - %msg%n 
      </Pattern> 
     </layout> 
    </appender> 

    <logger name="com.yourproject.analyzer.core" level="debug" 
     additivity="false"> 
     <appender-ref ref="FILE-THREAD" /> 
     <appender-ref ref="STDOUT" /> 
    </logger> 

    <root level="error"> 
     <appender-ref ref="STDOUT" /> 
    </root> 

</configuration> 

のように見えるファイルです次に、あなたの `log4j.properties`にあった何

<context-param> 
    <param-name>loggingName</param-name> 
    <param-value>logbackdirectory</param-value> 
<context-param> 

logback manual

関連する問題