您的位置:首页 > 其它

logback介绍

2016-01-21 15:57 357 查看


1. logback介绍

Logback是由log4j创始人设计的又一个开源日志组件。logback当前分成三个模块:logback-core,logback- classic和logback-access。logback-core是其它两个模块的基础模块。logback-classic是log4j的一个 改良版本。此外logback-classic完整实现SLF4J API使你可以很方便地更换成其它日志系统如log4j或JDK14 Logging。logback-access访问模块与Servlet容器集成提供通过Http来访问日志的功能。


2. maven依赖

[html] view
plaincopyprint?





<!-- 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,就可以直接使用日志了。

[java] view
plaincopyprint?





protected final Logger       logger = LoggerFactory.getLogger(this.getClass());  

使用:

[java] view
plaincopyprint?





@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级别的日志:

[html] view
plaincopyprint?





<?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. 设置输出多个级别的日志

[html] view
plaincopyprint?





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

设置两个level,则可以输出 ERROR和INFO级别的日志了。


4. 设置文件日志

[html] view
plaincopyprint?





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

  

  

</configuration>   


5. 精确设置每个包下面的日志

[html] view
plaincopyprint?





<logger name="com.xxx" additivity="false">  

    <level value="info" />  

    <appender-ref ref="file" />  

    <appender-ref ref="console" />  

</logger>  

详细参考:http://logback.qos.ch/manual/configuration.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: