• 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>
  • 相关阅读:
    sys_refcursor vs ref cursor in oracle
    Oracle-cursor动态游标
    游标(cursor)--显式游标&隐式游标、游标四个属性、循环遍历
    PL/SQL IF CASE
    python字符串的encode和decode
    python中raw_input()与input()
    Emacs显示行号
    Python爬虫——抓取糗百段子
    Python代码一定要对齐
    Python标准库内置函数——hasattr
  • 原文地址:https://www.cnblogs.com/huangyp/p/4211639.html
Copyright © 2020-2023  润新知