zoukankan      html  css  js  c++  java
  • Spring-Boot"原生态"的logback

    前言

    Logback是由 log4j创始人设计的又一个开源日志组件;

    logback当前分成三个模块:
    
    	logback-core
    
    	logbackclassic
    
    	logback-access
    

    logback-core是其它两个模块的基础模块

    如果在你的pom.xml中,依赖了 spring-boot-starter-web ,就可以不用再添加日志组件的依赖。

    application.properties 中加入

    #########logback##########
    logging.config=classpath:logback-boot.xml
    

    logback-boot.xml配置解说

    默认的是 logback.xml ,如果要扩展的话,必须是logback-xxx.xml

    <configuration>
    	<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    		<encoder charset="UTF-8">
    			<pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] %5p %m%n</pattern>
    		</encoder>
    	</appender>
    
    	<!-- 出错日志 appender  -->
    	<appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
    		<file>./logs/error/LinkManagerAPP_error_console.log</file>
    		<append>true</append>
    		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
    			<!-- 按天回滚 daily -->
    			<fileNamePattern>./logs/error/LinkManagerAPP_%d{yyyy-MM-dd_HH}_ERROR</fileNamePattern>
    			<!-- 日志最大的历史 2天 -->
    			<maxHistory>7</maxHistory>
    		</rollingPolicy>
    		<encoder>
    			<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>
    			<charset class="java.nio.charset.Charset">UTF-8</charset>
    		</encoder>
    		<filter class="ch.qos.logback.classic.filter.LevelFilter">
    			<!-- 过滤掉非ERROR级别,只打印ERROR日志 -->
    			<level>ERROR</level>
    			<onMatch>ACCEPT</onMatch>
    			<onMismatch>DENY</onMismatch>
    		</filter>
    		<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
    			<level>ERROR</level>
    		</filter>
    	</appender>
    
    	<!-- info日志 appender  -->
    	<appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
    		<file>./logs/info/LinkManagerAPP_info_console.log</file>
    		<append>true</append>
    		<!-- 按天回滚 daily -->
    		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
    			<fileNamePattern>./logs/info/LinkManagerAPP_%d{yyyy-MM-dd_HH}_INFO</fileNamePattern>
    			<!-- 日志最大的历史 2 -->
    			<maxHistory>7</maxHistory>
    		</rollingPolicy>
    		<encoder>
    			<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>
    			<charset class="java.nio.charset.Charset">UTF-8</charset>
    		</encoder>
    		<filter class="ch.qos.logback.classic.filter.LevelFilter">
    			<!-- 过滤掉非INFO级别,只打印INFO日志 -->
    			<level>INFO</level>
    			<onMatch>ACCEPT</onMatch>
    			<onMismatch>DENY</onMismatch>
    		</filter>
    		<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
    			<level>INFO</level>
    		</filter>	
    	</appender>
    
    	<root  level="DEBUG">
    		<appender-ref ref="STDOUT" />
    		<appender-ref ref="INFO" />
    		<appender-ref ref="ERROR" />
    	</root>
    </configuration> 
    

    详解:

    <pattern> :
        %d{yyyy-MM-dd HH:mm:ss.SSS}——日志输出时间  
        %thread——输出日志的进程名字,这在Web应用以及异步任务处理中很有用  
        %-5level——日志级别,并且使用5个字符靠左对齐  
        %logger{36}——日志输出者的名字  
        %msg——日志消息  
        %n——平台的换行符  
    
    <appender> :
    	appender是configuration的子节点,是负责写日志的组件
    
    <file> :
        被写入的文件名,可以是相对目录 , 也可以是绝对目录 , 如果目录不存在则会自动创建
    
    <append> :
        如果是true , 日志被追加到文件结尾 , 如果是false,清空现存文件 , 默认是true
    
    <rollingPolicy> :
        当发生滚动时,决定 RollingFileAppender 的行为,涉及文件移动和重命名
    
    <fileNamePattern> :
        活动文件的名字会根据fileNamePattern的值,每隔一段时间改变一次
    
    <maxHistory> :
        每产生一个日志文件,该日志文件的保存期限
    
    ConsoleAppender类 :
        把日志输出到控制台
    
    RollingFileAppender类 :
        滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件
    
    TimeBasedRollingPolicy类 :
        最常用的滚动策略,它根据时间来制定滚动策略,既负责滚动也负责触发滚动
    
    LevelFilter类 :
    	根据记录级别对记录事件进行过滤。
    	如果事件的级别等于配置的级别,过滤器会根据 onMatch 和 onMismatch 属性接受或拒绝事件
    
    ThresholdFilter类 :
    	过滤掉低于指定临界值的事件。
    	当记录的级别等于或高于临界值时 , ThresholdFilter 的decide()方法会返回NEUTRAL;
    	当记录级别低于临界值时 , 事件会被拒绝
    

    想了解具体内容,可参考:

    logback节点配置详解

  • 相关阅读:
    线程
    GridView 1 分页 全选 编辑 删除 更新
    抓取淘宝分类
    ruwnumber自定义分页
    XML随笔
    二进制图片相互转换
    7表单1
    HTML代码1
    6表格
    5图像
  • 原文地址:https://www.cnblogs.com/lijinshan950823/p/9524370.html
Copyright © 2011-2022 走看看