logback日志pattern_springboot2.0整合logback日志(详细)

本文作者介绍了如何在SpringBoot项目中配置logback日志,包括如何设置日志按天归档、日志切分等功能。通过在`pom.xml`中利用SpringBoot内置的日志依赖,无需额外引入logback包。推荐使用`logback-spring.xml`配置文件,并提供了具体的配置示例,实现控制台和磁盘输出,并按级别区分日志文件。
摘要由CSDN通过智能技术生成

2a4d6dd70930310a06ac9fff3599a2eb.png

作者:永远的70KG

https://www.cnblogs.com/zhangjianbing/p/8992897.html

一。

近期自己的项目想要一个记录日志的功能,而springboot本身就内置了日志功能,然而想要输入想要的日志,并且输出到磁盘,然后按天归档,或者日志的切分什么的,自带的日志仅仅具有简单的功能,百度了一番,总结如下,适合大多数的应用场景

二。

springboot的pom文件都会引一个parent

<parent>  <groupId>org.springframework.bootgroupId>  <artifactId>spring-boot-starter-parentartifactId>  <version>2.0.0.RELEASEversion>parent>

点进去这个parent,会有一个这个dependency

<parent>  <groupId>org.springframework.bootgroupId>  <artifactId>spring-boot-dependenciesartifactId>  <version>2.0.0.RELEASEversion>  <relativePath>../../spring-boot-dependenciesrelativePath>parent>

再点进去就是2.0版本,所谓的它给你集成的各种包依赖,而且规定了版本号,其中有一个包如下

<dependency>  <groupId>org.springframework.bootgroupId>  <artifactId>spring-boot-starterartifactId>  <version>2.0.0.RELEASEversion>dependency>

再点进去

<dependency>  <groupId>org.springframework.bootgroupId>  <artifactId>spring-boot-starter-loggingartifactId>  <version>2.0.0.RELEASEversion>  <scope>compilescope>dependency>

再点,这些都是原有的日志包,所以,不必再引依赖了,直接用就ok了,用法如下:

<dependencies>    <dependency>      <groupId>ch.qos.logbackgroupId>      <artifactId>logback-classicartifactId>      <version>1.2.3version>      <scope>compilescope>    dependency>    <dependency>      <groupId>org.apache.logging.log4jgroupId>      <artifactId>log4j-to-slf4jartifactId>      <version>2.10.0version>      <scope>compilescope>    dependency>    <dependency>      <groupId>org.slf4jgroupId>      <artifactId>jul-to-slf4jartifactId>      <version>1.7.25version>      <scope>compilescope>    dependency>dependencies>

============================分割线====================================

首先,官方推荐使用的xml名字的格式为:logback-spring.xml而不是logback.xml,至于为什么,因为带spring后缀的可以使用这个标签。

在resource下创建logback-spring.xml文件

内容如下,每行都有注释了

<?xml version="1.0" encoding="UTF-8"?><configuration  scan="true" scanPeriod="10 seconds">        <contextName>logbackcontextName>        <property name="log.path" value="D:/nmyslog/nmys" />            <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />    <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />    <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />        <property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>        <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">                <filter class="ch.qos.logback.classic.filter.ThresholdFilter">            <level>infolevel>        filter>        <encoder>            <Pattern>${CONSOLE_LOG_PATTERN}Pattern>                        <charset>UTF-8charset>        encoder>    appender>            <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">                <file>${log.path}/log_debug.logfile>                <encoder>            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%npattern>            <charset>UTF-8charset>         encoder>                <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">                        <fileNamePattern>${log.path}/debug/log-debug-%d{yyyy-MM-dd}.%i.logfileNamePattern>            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">                <maxFileSize>100MBmaxFileSize>            timeBasedFileNamingAndTriggeringPolicy>                        <maxHistory>15maxHistory>        rollingPolicy>                <filter class="ch.qos.logback.classic.filter.LevelFilter">            <level>debuglevel>            <onMatch>ACCEPTonMatch>            <onMismatch>DENYonMismatch>        filter>    appender>        <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">                <file>${log.path}/log_info.logfile>                <encoder>            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%npattern>            <charset>UTF-8charset>        encoder>                <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">                        <fileNamePattern>${log.path}/info/log-info-%d{yyyy-MM-dd}.%i.logfileNamePattern>            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">                <maxFileSize>100MBmaxFileSize>            timeBasedFileNamingAndTriggeringPolicy>                        <maxHistory>15maxHistory>        rollingPolicy>                <filter class="ch.qos.logback.classic.filter.LevelFilter">            <level>infolevel>            <onMatch>ACCEPTonMatch>            <onMismatch>DENYonMismatch>        filter>    appender>        <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">                <file>${log.path}/log_warn.logfile>                <encoder>            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%npattern>            <charset>UTF-8charset>         encoder>                <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">            <fileNamePattern>${log.path}/warn/log-warn-%d{yyyy-MM-dd}.%i.logfileNamePattern>            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">                <maxFileSize>100MBmaxFileSize>            timeBasedFileNamingAndTriggeringPolicy>                        <maxHistory>15maxHistory>        rollingPolicy>                <filter class="ch.qos.logback.classic.filter.LevelFilter">            <level>warnlevel>            <onMatch>ACCEPTonMatch>            <onMismatch>DENYonMismatch>        filter>    appender>        <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">                <file>${log.path}/log_error.logfile>                <encoder>            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%npattern>            <charset>UTF-8charset>         encoder>                <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">            <fileNamePattern>${log.path}/error/log-error-%d{yyyy-MM-dd}.%i.logfileNamePattern>            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">                <maxFileSize>100MBmaxFileSize>            timeBasedFileNamingAndTriggeringPolicy>                        <maxHistory>15maxHistory>        rollingPolicy>                <filter class="ch.qos.logback.classic.filter.LevelFilter">            <level>ERRORlevel>            <onMatch>ACCEPTonMatch>            <onMismatch>DENYonMismatch>        filter>    appender>                            <springProfile name="dev">        <logger name="com.nmys.view" level="debug"/>    springProfile>    <root level="info">        <appender-ref ref="CONSOLE" />        <appender-ref ref="DEBUG_FILE" />        <appender-ref ref="INFO_FILE" />        <appender-ref ref="WARN_FILE" />        <appender-ref ref="ERROR_FILE" />    root>                                                                                        configuration>

其中说一下,彩色日志这个东东,得下载插件才可以哦,怎么下?我不知道哈哈

然后在yml或者properties中配置

logging.config=classpath:log/logback-spring.xmllogging.path=D:/nmyslog/nmys

日志的使用方式,就跟普通使用一样,只不过,此配置配置的是不仅在控制台输出而且在磁盘上也会保留,并且info/debug/error/warn的日志都区分开了,并且按照每天做了归档

长按关注锋哥微信公众号,非常感谢;

dc0dc71b57828b2e9ed15688fff80861.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值