zoukankan      html  css  js  c++  java
  • Maven项目配置logback

    首先,在pom.xml中加入maven依赖

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <!-- log start -->
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>${slf4j-api.version}</version>
    </dependency>
    <dependency>
      <groupId>ch.qos.logback</groupId>
      <artifactId>logback-core</artifactId>
      <version>${logback.version}</version>
    </dependency>
    <dependency>
      <groupId>ch.qos.logback</groupId>
      <artifactId>logback-access</artifactId>
      <version>${logback.version}</version>
    </dependency>
    <dependency>
      <groupId>ch.qos.logback</groupId>
      <artifactId>logback-classic</artifactId>
      <version>${logback.version}</version>
    </dependency>
    <!-- log end -->

    我使用的版本是

    1
    2
    <slf4j-api.version>1.7.25</slf4j-api.version>
    <logback.version>1.1.7</logback.version>

    接着,配置 logback.xml

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    <?xml version="1.0" encoding="UTF-8"?>
    <!-- 级别从高到低 OFF 、 FATAL 、 ERROR 、 WARN 、 INFO 、 DEBUG 、 TRACE 、 ALL -->
    <!-- 日志输出规则 根据当前ROOT 级别,日志输出时,级别高于root默认的级别时 会输出 -->
    <!-- 以下 每个配置的 filter 是过滤掉输出文件里面,会出现高级别文件,依然出现低级别的日志信息,通过filter 过滤只记录本级别的日志 -->
    <!-- scan 当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。 -->
    <!-- scanPeriod 设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。 -->
    <!-- debug 当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 -->
    <configuration scan="true" scanPeriod="60 seconds" debug="false">
        <!-- 子节点<property> :用来定义变量值,它有两个属性name和value,通过<property>定义的值会被插入到logger上下文中,可以使“${}”来使用变量。-->
        <property name="LOG_HOME" value="/export/Logs/youxi" />
     
        <!--子节点<appender>:负责写日志的组件,它有两个必要属性name和class。name指定appender名称,class指定appender的全限定名-->
        <!-- ConsoleAppender 控制台输出日志 -->
        <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
            <encoder>
                <!-- 设置日志输出格式 -->
                <pattern>[%d{yyyy/MM/dd HH:mm:ss.SSS}][%p][%logger{0}:%L] %m%n</pattern>
            </encoder>
            <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
               <level>INFO</level>
            </filter>
        </appender>
     
     
        <!-- RollingFileAppender:滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件。有以下子节点:-->
        <!--      <file>:被写入的文件名,可以是相对目录,也可以是绝对目录,如果上级目录不存在会自动创建,没有默认值。-->
        <!--      <append>:如果是 true,日志被追加到文件结尾,如果是 false,清空现存文件,默认是true。-->
        <!--      <rollingPolicy>:当发生滚动时,决定RollingFileAppender的行为,涉及文件移动和重命名。属性class定义具体的滚动策略类-->
        <!--      class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy": 最常用的滚动策略,它根据时间来制定滚动策略,既负责滚动也负责出发滚动。有以下子节点:-->
        <!--        <fileNamePattern>:必要节点,包含文件名及“%d”转换符,“%d”可以包含一个java.text.SimpleDateFormat指定的时间格式,如:%d{yyyy-MM}。-->
        <!--如果直接使用 %d,默认格式是 yyyy-MM-dd。RollingFileAppender的file字节点可有可无,通过设置file,可以为活动文件和归档文件指定不同位置,当前日志总是记录到file指定的文件(活动文件),活动文件的名字不会改变;-->
        <!--如果没设置file,活动文件的名字会根据fileNamePattern 的值,每隔一段时间改变一次。“/”或者“\”会被当做目录分隔符。-->
        <!--        <maxHistory>:-->
        <!--可选节点,控制保留的归档文件的最大数量,超出数量就删除旧文件。假设设置每个月滚动,且<maxHistory>是6,则只保存最近6个月的文件,删除之前的旧文件。注意,删除旧文件是,那些为了归档而创建的目录也会被删除。-->
     
        <!--      class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy": 查看当前活动文件的大小,如果超过指定大小会告知RollingFileAppender 触发当前活动文件滚动。只有一个节点:-->
        <!--        <maxFileSize>:这是活动文件的大小,默认值是10MB。-->
        <!--        <prudent>:当为true时,不支持FixedWindowRollingPolicy。支持TimeBasedRollingPolicy,但是有两个限制,1不支持也不允许文件压缩,2不能设置file属性,必须留空。-->
     
        <!--      <triggeringPolicy >: 告知 RollingFileAppender 合适激活滚动。-->
        <!--      class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy" 根据固定窗口算法重命名文件的滚动策略。有以下子节点:-->
        <!--        <minIndex>:窗口索引最小值-->
        <!--        <maxIndex>:窗口索引最大值,当用户指定的窗口过大时,会自动将窗口设置为12。-->
        <!--        <fileNamePattern>:必须包含“%i”例如,假设最小值和最大值分别为12,命名模式为 mylog%i.log,会产生归档文件mylog1.log和mylog2.log。还可以指定文件压缩选项,例如,mylog%i.log.gz 或者 没有log%i.log.zip-->
        <appender name="LogFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <file>${LOG_HOME}/youxi.log</file>
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <fileNamePattern>${LOG_HOME}/youxi.log.%d{yyyy-MM-dd}</fileNamePattern>
            </rollingPolicy>
            <!-- <encoder>:对记录事件进行格式化。负责两件事,一是把日志信息转换成字节数组,二是把字节数组写入到输出流。-->
            <!-- PatternLayoutEncoder 是唯一有用的且默认的encoder ,有一个<pattern>节点,用来设置日志的输入格式。使用“%”加“转换符”方式,如果要输出“%”,则必须用“\”对“\%”进行转义。-->
            <encoder>
                <pattern>%p %d{yyyy-MM-dd HH:mm:ss} %logger - %m%n</pattern>
            </encoder>
        </appender>
     
        <appender name="PokerMqListenerLogFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <file>${LOG_HOME}/mq/poker-mq.log</file>
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <fileNamePattern>${LOG_HOME}/mq/poker-mq.log.%d{yyyy-MM-dd}</fileNamePattern>
            </rollingPolicy>
            <encoder>
                <pattern>%p %d{yyyy-MM-dd HH:mm:ss} %logger - %m%n</pattern>
            </encoder>
        </appender>
        <logger name="com.jd.station.soa.message.listener.PokerActivityInfoMqListener" level="INFO" additivity="false">
            <appender-ref ref="PokerMqListenerLogFile"/>
        </logger>
     
        <logger name="jdbc.sqltiming" level="info"/>
        <logger name="com.ibatis" level="info" />
        <logger name="com.ibatis.common.jdbc.SimpleDataSource" level="info" />
        <logger name="com.ibatis.common.jdbc.ScriptRunner" level="info" />
        <logger name="com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate" level="info" />
        <logger name="java.sql.Connection" level="info" />
        <logger name="java.sql.Statement" level="info" />
        <logger name="java.sql.PreparedStatement" level="info" />
        <logger name="java.sql.ResultSet" level="info" />
     
        <root level="INFO">
            <appender-ref ref="console" />
            <appender-ref ref="LogFile" />
        </root>
     
    </configuration>

      

    详细博客请参考

    https://www.cnblogs.com/warking/p/5710303.html

  • 相关阅读:
    [LeetCode] Power of Three 判断3的次方数
    [LeetCode] 322. Coin Change 硬币找零
    [LeetCode] 321. Create Maximum Number 创建最大数
    ITK 3.20.1 VS2010 Configuration 配置
    VTK 5.10.1 VS2010 Configuration 配置
    FLTK 1.3.3 MinGW 4.9.1 Configuration 配置
    FLTK 1.1.10 VS2010 Configuration 配置
    Inheritance, Association, Aggregation, and Composition 类的继承,关联,聚合和组合的区别
    [LeetCode] Bulb Switcher 灯泡开关
    [LeetCode] Maximum Product of Word Lengths 单词长度的最大积
  • 原文地址:https://www.cnblogs.com/telwanggs/p/15801630.html
Copyright © 2011-2022 走看看