Spring Boot Logback日志配置

logback的使用:

Logback的默认配置

如果配置文件 logback-test.xml 和 logback.xml 都不存在,那么 logback 默认地会调用BasicConfigurator ,创建一个最小化配置。最小化配置由一个关联到根 logger 的ConsoleAppender 组成。输出用模式为%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n 的 PatternLayoutEncoder 进行格式化。root logger 默认级别是 DEBUG。

1、Logback的配置文件

Logback 配置文件的语法非常灵活。正因为灵活,所以无法用 DTD 或 XML schema 进行定义。尽管如此,可以这样描述配置文件的基本结构:以

2、Logback默认配置的步骤

(1). 尝试在 classpath 下查找文件 logback-test.xml;

(2). 如果文件不存在,则查找文件 logback.xml;

(3). 如果两个文件都不存在,logback 用 Bas icConfigurator 自动对自己进行配置,这会导致记录输出到控制台。

3、Logback.xml 文件

在src/main/resources下添加Logback.xml目录如下:

扫描二维码关注公众号,回复: 2897879 查看本文章

Logback.xml配置如下:

 1 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 2 <configuration>
 3     <!--tomcat下日志存放路径的配置,其他应用服务器,请自己改动-->
 4     <property name="LOG_PATH" value="${CATALINA_HOME:-..}/logs/hy360"/>
 5     <!-- 彩色日志格式 -->
 6     <!--不加粗的彩色格式,喜欢用就消掉注释-->
 7     <!--<property name="CONSOLE_LOG_PATTERN" value="%boldCyan(%date{yyyy-MM-dd HH:mm:ss:SSS}) | %highlight(%-5level) | %yellow(%15.15t) | %green(%40.40logger{39}) | %msg%n"/>-->
 8     <!--加粗的彩色格式,不喜欢就用上面的-->
 9     <property name="CONSOLE_LOG_PATTERN"
10               value="%boldCyan(%date{yyyy-MM-dd HH:mm:ss:SSS}) | %highlight(%-5level) | %boldYellow(%15.15t) | %boldGreen(%40.40logger{39}) | %gray(%msg%n)"/>
11     <!--日志文件里的 日志文字输出格式-->
12     <property name="FILE_LOG_PATTERN"
13               value="[%date{yyyy-MM-dd HH:mm:ss}] [%-5level] [%logger:%line] --%mdc{client} %msg%n"/>
14     <!-- Console 输出设置 -->
15     <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
16         <!--encoder 默认配置为PatternLayoutEncoder -->
17         <encoder>
18             <pattern>${CONSOLE_LOG_PATTERN}</pattern>
19         </encoder>
20         <!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息 -->
21         <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
22             <level>INFO</level>
23         </filter>
24     </appender>
25     <!-- 按照每天生成日志文件 -->
26     <!-- 出错日志 appender  -->
27     <appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
28         <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
29             <!-- 按天回滚 daily -->
30             <!-- log.dir 在maven profile里配置 -->
31             <fileNamePattern>${LOG_PATH}/%d{yyyy-MM-dd}-error.%i.log.zip</fileNamePattern>
32             <!-- 日志最大的历史 60天 -->
33             <maxFileSize>10MB</maxFileSize>
34             <maxHistory>60</maxHistory>
35             <totalSizeCap>1GB</totalSizeCap>
36         </rollingPolicy>
37         <encoder>
38             <pattern>${FILE_LOG_PATTERN}</pattern>
39         </encoder>
40         <!-- 只打印错误日志 -->
41         <filter class="ch.qos.logback.classic.filter.LevelFilter">
42             <level>ERROR</level>
43             <onMatch>ACCEPT</onMatch>
44             <onMismatch>DENY</onMismatch>
45         </filter>
46     </appender>
47     <!-- info日志 appender  -->
48     <appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
49         <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
50             <!-- 按天回滚 daily -->
51             <fileNamePattern>${LOG_PATH}/%d{yyyy-MM-dd}-info.%i.log.zip</fileNamePattern>
52             <!-- 日志最大的历史 60天 -->
53             <maxFileSize>10MB</maxFileSize>
54             <maxHistory>60</maxHistory>
55             <totalSizeCap>1GB</totalSizeCap>
56         </rollingPolicy>
57         <encoder>
58             <pattern>${FILE_LOG_PATTERN}</pattern>
59         </encoder>
60         <!-- 只打印INFO日志 -->
61         <filter class="ch.qos.logback.classic.filter.LevelFilter">
62             <level>INFO</level>
63             <onMatch>ACCEPT</onMatch>
64             <onMismatch>DENY</onMismatch>
65         </filter>
66     </appender>
67     <!-- 生产环境下,将此级别配置为适合的级别,以免日志文件太多或影响程序性能 -->
68     <root level="INFO">
69         <appender-ref ref="CONSOLE"/>
70         <appender-ref ref="ERROR"/>
71         <appender-ref ref="INFO"/>
72     </root>
73 </configuration>

在程序用引用Logback:

public class WxPayController {
    private final Logger logger = LoggerFactory.getLogger(this.getClass());

    @Autowired
    private WxPayServiceImpl wxPayService;
    @Autowired
    private AliPayService payService;

    @GetMapping("/queryOrder")
    public ResultVo<Integer> queryOrder(@RequestParam(required = false) String transactionId,
                                        @RequestParam(required = false) String outTradeNo) {
        try {
            wxPayService.queryOrder(transactionId, outTradeNo);
        } catch (WxPayException e) {
            logger.error("查询微信支付订单时发生错误,原因:" + e.getMessage());
        }
        return ResultVo.success(0);
    }
}

猜你喜欢

转载自www.cnblogs.com/lamdong/p/9541109.html