logback基本用法

logger代码

使用slf4j-api提供的统一接口(来自logback官网http://logback.qos.ch/xref/chapters/introduction/HelloWorld1.html)

package chapters.introduction;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class HelloWorld1 {

  public static void main(String[] args) {

    Logger logger = LoggerFactory.getLogger("chapters.introduction.HelloWorld1");
    logger.debug("Hello world.");

  }
}

logger配置:logback.xml

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

<configuration>
    <!-- 定义日志输出格式 -->
    <property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}[%line] - %msg%n" />

    <!-- 输出到滚动文件 -->
    <appender name="ACCESS" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 文件名 -->
        <File>/tmp/log/api/access.log</File>
        <!-- 配置基于时间的滚动策略 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 滚动时间周期是从fileNamePattern推断出来的 -->
            <!-- 比如格式:{yyyy-MM-dd}表示按天滚动;{yyyy-MM-dd_HH}表示按小时滚动 -->
            <fileNamePattern>/tmp/log/api/access.%d{yyyy-MM-dd}.log</fileNamePattern>
            <!-- 保留历史日志数量 -->
            <maxHistory>7</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>${LOG_PATTERN}</pattern>
        </encoder>
    </appender>
    
    <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>/tmp/log/api/debug.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>/tmp/log/api/debug.%d{yyyy-MM-dd}.log</fileNamePattern>
            <maxHistory>7</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>${LOG_PATTERN}</pattern>
        </encoder>
    </appender>

    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${LOG_PATTERN}</pattern>
        </encoder>
    </appender>

    <logger name="com.xqb.api.commons.GlobalExceptionHandler" level="DEBUG"/>

    <!-- 特定日志使用指定的appender -->
    <logger name="org.springframework.web.servlet.DispatcherServlet" additivity="false" level="DEBUG">
        <appender-ref ref="ACCESS"/>
    </logger>
    <logger name="org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor" additivity="false" level="DEBUG">
        <appender-ref ref="ACCESS"/>
    </logger>

    <logger name="org.springframework.jdbc.core" level="TRACE"/>
    <logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="TRACE"/>
    <logger name="org.hibernate.SQL" level="DEBUG"/>

    <root level="INFO">
        <!-- 启用的appender列表 -->
        <!-- The ACCESS appender 不用加了,因为在定义DispatcherServlet logger时已经使用过 -->
        <appender-ref ref="CONSOLE"/>
        <appender-ref ref="DEBUG_FILE"/>
    </root>

</configuration>

依赖包

slf4j-api.jar 

logback-core.jar 

logback-classic.jar

maven配置:

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>${slf4j-version}</version>
</dependency>

<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.1.2</version>
</dependency>
原文地址:https://www.cnblogs.com/huangyp/p/4211639.html