logbackログコンポーネントの構成と使用


1.logbackの紹介
Logbackはlog 4 jの創始者によって設計されたもう一つのオープンソースログコンポーネントである.logbackは現在、logback-core、logback-classic、logback-accessの3つのモジュールに分かれています.logback-coreは他の2つのモジュールの基礎モジュールです.logback-classicはlog 4 jの改良バージョンである.さらにlogback-classicはSLF 4 J APIを完全に実現し、log 4 jやJDK 14 Loggingなどの他のログシステムに簡単に交換することができます.logback-accessアクセスモジュールとサーブレットコンテナの統合は、Httpを介してログにアクセスする機能を提供します.
2.maven依存
    <!-- logback+slf4j -->  
    <dependency>  
        <groupId>org.slf4j</groupId>  
        <artifactId>slf4j-api</artifactId>  
        <version>1.6.0</version>  
        <type>jar</type>  
        <scope>compile</scope>  
    </dependency>  
    <dependency>  
        <groupId>ch.qos.logback</groupId>  
        <artifactId>logback-core</artifactId>  
        <version>0.9.28</version>  
        <type>jar</type>  
    </dependency>  
    <dependency>  
        <groupId>ch.qos.logback</groupId>  
        <artifactId>logback-classic</artifactId>  
        <version>0.9.28</version>  
        <type>jar</type>  
    </dependency>  

mavenを使用していない場合は、自分でjarパッケージをダウンロードしてください...
3.構成と使用
1.ログ使用
私たちはorgを使います.slf4j.LoggerFactoryは、ログを直接使用できます.
    protected final Logger       logger = LoggerFactory.getLogger(this.getClass());  

次の操作を行います.
@Controller  
@RequestMapping(value = "")  
public class IndexController extends BaseController {  
  
    /** 
     * Success 
     * @param response 
     * @throws IOException 
     */  
    @RequestMapping(value = "")  
    @ResponseBody  
    public void hello(HttpServletResponse response) throws IOException {  
        logger.debug("DEBUG TEST       DEBUG     ");  
        logger.info("INFO test       INFO     ");  
        logger.error("ERROR test       ERROR     ");  
    }  
  
} 

2.コンソールに特定レベルのログを出力する
logbackのプロファイルは/src/main/resource/フォルダの下にあるlogback.xmlファイルにあります.ここでlogback.xmlファイルはlogbackのプロファイルです.このファイルを配置すると、自動的にこのプロファイルが見つかります.
次の構成では、特定のERRORレベルのログを出力します.
    <?xml version="1.0"?>  
    <configuration>  
      
        <!-- ch.qos.logback.core.ConsoleAppender       -->  
        <appender name="console" class="ch.qos.logback.core.ConsoleAppender">  
            <encoder>  
                <pattern>[%-5level] %d{HH:mm:ss.SSS} [%thread] %logger{36} - %msg%n</pattern>  
            </encoder>  
        </appender>  
      
        <!--      -->  
        <root>  
            <level value="error" />  
            <appender-ref ref="console" />  
        </root>  
      
    </configuration>   

結果は、ERRORレベルのログのみをコンソールに出力します.
3.複数レベルのログを出力する設定
    <?xml version="1.0"?>  
    <configuration>  
      
        <!-- ch.qos.logback.core.ConsoleAppender       -->  
        <appender name="console" class="ch.qos.logback.core.ConsoleAppender">  
            <encoder>  
                <pattern>[%-5level] %d{HH:mm:ss.SSS} [%thread] %logger{36} - %msg%n</pattern>  
            </encoder>  
        </appender>  
      
        <!--      -->  
        <root>  
            <level value="error" />  
            <level value="info" />  
            <appender-ref ref="console" />  
        </root>  
      
    </configuration>   

2つのレベルを設定すると、ERRORとINFOレベルのログを出力できます.
4.ファイルログの設定
    <?xml version="1.0"?>  
    <configuration>  
      
        <!-- ch.qos.logback.core.ConsoleAppender       -->  
        <appender name="console" class="ch.qos.logback.core.ConsoleAppender">  
            <encoder>  
                <pattern>[%-5level] %d{HH:mm:ss.SSS} [%thread] %logger{36} - %msg%n  
                </pattern>  
            </encoder>  
        </appender>  
      
        <!-- ch.qos.logback.core.rolling.RollingFileAppender        -->  
        <appender name="file"  
            class="ch.qos.logback.core.rolling.RollingFileAppender">  
            <Encoding>UTF-8</Encoding>  
            <File>/home/test.log</File>  
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">  
                <FileNamePattern>/home/test-%d{yyyy-MM-dd}.log  
                </FileNamePattern>  
                <MaxHistory>10</MaxHistory>  
                <TimeBasedFileNamingAndTriggeringPolicy  
                    class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">  
                    <MaxFileSize>5MB</MaxFileSize>  
                </TimeBasedFileNamingAndTriggeringPolicy>  
            </rollingPolicy>  
            <layout class="ch.qos.logback.classic.PatternLayout">  
                <pattern>[%-5level] %d{HH:mm:ss.SSS} [%thread] %logger{36} - %msg%n  
                </pattern>  
            </layout>  
        </appender>  
      
        <!--      -->  
        <root>  
            <!--    ERROR INFO     ,   FILE         -->  
            <level value="error" />  
            <level value="info" />  
            <appender-ref ref="file" />   
            <appender-ref ref="console" />  
        </root>  

        <!--            -->
        <logger name="com.xxx" additivity="false">  
            <level value="info" />  
            <appender-ref ref="file" />  
            <appender-ref ref="console" />  
        </logger>
</configuration>

詳細:http://logback.qos.ch/manual/configuration.html