logback的配置和使用

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依赖

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

设置两个level,则可以输出 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>  

</configuration>   

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

<logger name="com.xxx" additivity="false">
    <level value="info" />
    <appender-ref ref="file" />
    <appender-ref ref="console" />
</logger>  
时间: 2024-11-10 12:58:48

logback的配置和使用的相关文章

logback 常用配置详解(二) &lt;appender&gt;

logback 常用配置详解(二) <appender> <appender>: <appender>是<configuration>的子节点,是负责写日志的组件. <appender>有两个必要属性name和class.name指定appender名称,class指定appender的全限定名. 1.ConsoleAppender: 把日志添加到控制台,有以下子节点: <encoder>:对日志进行格式化.(具体参数稍后讲解 ) &

logback 常用配置详解&lt;appender&gt;

logback 常用配置详解 <appender> <appender>: <appender>是<configuration>的子节点,是负责写日志的组件. <appender>有两个必要属性name和class.name指定appender名称,class指定appender的全限定名. 1.ConsoleAppender: 把日志添加到控制台,有以下子节点: <encoder>:对日志进行格式化.(具体参数稍后讲解 ) <

SL4J+logback基本配置

SL4J简介 SLF4J,即简单日志门面(Simple Logging Facade for Java),不是具体的日志解决方案,它只服务于各种各样的日志系统,也就是说它只是一个抽象层(abstract layer),它允许你在后台使用任意一个日志类库.如果你开发的是类库或者嵌入式组件,那么就应该考虑采用SLF4J,因为不可能影响最终用户选择哪种日志系统.在另一方面,如果是一个简单或者独立的应用,确定只有一种日志系统,那么就没有使用SLF4J的必要. Pom配置 <properties> &l

spring 3.2.x + struts2 + mybatis 3.x + logback 整合配置

与前面的一篇mybatis 3.2.7 与 spring mvc 3.x.logback整合 相比,只是web层的MVC前端框架,从spring mvc转换成struts 2.x系列,变化并不大 一.pom.xml 配置 1 <?xml version="1.0" encoding="UTF-8"?> 2 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=&

logback常用配置详解及logback简介

logback 简介(一) Ceki Gülcü在Java日志领域世界知名.他创造了Log4J ,这个最早的Java日志框架即便在JRE内置日志功能的竞争下仍然非常流行.随后他又着手实现SLF4J 这个“简单的日志前端接口(Façade)”来替代Jakarta Commons-Logging . LOGBack,一个“可靠.通用.快速而又灵活的Java日志框架”. 要在工程里面使用logback需要以下jar文件: slf4j-api-1.6.1.jar 官网网址:http://www.slf4

logback 简单配置总述

近来有一个系统日志分模块输出的需求.其实需求很简单,只是第一次使用slf4j+logback的日志架构.故参照了很多博客和一些实例进行配置和测试. 在测试过程中发现网上有很多配置是错误的,有很多是误导的,故将自己前前后后,反反复复测试了很多遍,最后完美通过的实例拿上来和大家分享一下. 一.主要标签释义(因为都可以在网上查找到,我只列举几个重要的和我用到的) 1.configuration.是整个配置文件的父标签.有三个属性,我用到的是debug,默认false,因为途中需要看调试信息,查看配置是

(转)Spring boot——logback.xml 配置详解(三)&lt;appender&gt;

文章转载自:http://aub.iteye.com/blog/1101260,在此对作者的辛苦表示感谢! logback 常用配置详解(二) <appender> <appender>: <appender>是<configuration>的子节点,是负责写日志的组件. <appender>有两个必要属性name和class.name指定appender名称,class指定appender的全限定名. 1.ConsoleAppender: 把日

logback 常用配置详解(序)logback 简介

logback 常用配置详解(序)logback 简介 摘自:http://aub.iteye.com/blog/1101222 博客分类: Log java loglogback 原创文章,转载请指明出处:http://aub.iteye.com/blog/1101222, 尊重他人即尊重自己 详细整理了logback常用配置, 不是官网手册的翻译版,而是使用总结,旨在更快更透彻的理解其配置 logback 常用配置详解(序)logback 简介 logback 常用配置详解(一)<confi

【Log】logback的配置和使用

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