springboot2.0整合logback

举报
加油O幸福 发表于 2021/08/24 10:28:59 2021/08/24
【摘要】 一、开发环境 开发环境 • JDK 8 • Spring Boot 2.0. 9 RELEASE • Maven • Windows 10 • IDEA 20 20 . 3 Spring Boot默认集成了Logback,可以开箱即用, 不需要再次引入 spring-boot-starter-logging 依赖 , 因为 Spring Boot启动 时加载 spring-boo...

一、开发环境

开发环境

JDK 8

Spring Boot 2.0. 9 RELEASE

Maven

Windows 10

IDEA 20 20 . 3

Spring Boot默认集成了Logback,可以开箱即用, 不需要再次引入 spring-boot-starter-logging 依赖 , 因为 Spring Boot启动 时加载 spring-boot-starter ,而 spring-boot-starter 包含了 spring-boot-starter-logging,所以Spring Boot就默认集成了Logback 。

2、 配置信息

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

然后在yml中配置

logging.config=classpath:log/logback-spring.xml

logging.path=D:/nmyslog/nmys


最后将下面的代码复制到logback-spring.xml里。


<?xml version="1.0" encoding="UTF-8"?><!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出 --><!-- scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true --><!-- scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。 --><!-- debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 --> < configuration scan =" true " scanPeriod =" 10 seconds ">

<!--<include resource="org/springframework/boot/logging/logback/base.xml"

/> -->

< contextName > Logback For Boss </ contextName >

<!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义变量后,可以使“${}”来使用变量。 -->

< property name =" log.path " value =" F:/locakback " />

<!-- 定义日志文件 输入位置 -->

< property name =" logDir " value =" F:/logbak " />

<!-- 日志最大的历史 30天 -->

< property name =" maxHistory " value =" 30 " />



<!-- 控制台输出日志 -->

< appender name =" STDOUT " class =" ch.qos.logback.core.ConsoleAppender ">

< encoder >

< pattern > %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger-%msg%n </ pattern >

< charset class =" java.nio.charset.Charset "> UTF-8 </ charset >

</ encoder >

</ appender >



<!-- ERROR级别日志 -->

< appender name =" ERROR "

class =" ch.qos.logback.core.rolling.RollingFileAppender ">

< filter class =" ch.qos.logback.classic.filter.LevelFilter ">

< level > ERROR </ level >

< onMatch > ACCEPT </ onMatch >

< onMismatch > DENY </ onMismatch >

</ filter >

< rollingPolicy

class =" ch.qos.logback.core.rolling.TimeBasedRollingPolicy ">

< fileNamePattern > ${logDir}\%d{yyyyMMdd}\error.log </ fileNamePattern >

< maxHistory > ${maxHistory} </ maxHistory >

</ rollingPolicy >

< encoder >

< pattern > %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger -

%msg%n </ pattern >

< charset class =" java.nio.charset.Charset "> UTF-8 </ charset >

</ encoder >

< append > false </ append >

< prudent > false </ prudent >

</ appender >


<!-- WARN级别日志 -->

< appender name =" WARN "

class =" ch.qos.logback.core.rolling.RollingFileAppender ">

< filter class =" ch.qos.logback.classic.filter.LevelFilter ">

< level > WARN </ level >

< onMatch > ACCEPT </ onMatch >

< onMismatch > DENY </ onMismatch >

</ filter >

< rollingPolicy

class =" ch.qos.logback.core.rolling.TimeBasedRollingPolicy ">

< fileNamePattern > ${logDir}\%d{yyyyMMdd}\warn.log </ fileNamePattern >

< maxHistory > ${maxHistory} </ maxHistory >

</ rollingPolicy >

< encoder >

< pattern > %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger-%msg%n </ pattern >

< charset class =" java.nio.charset.Charset "> UTF-8 </ charset >

</ encoder >

< append > false </ append >

< prudent > false </ prudent >

</ appender >


<!-- INFO级别日志 -->

< appender name =" INFO "

class =" ch.qos.logback.core.rolling.RollingFileAppender ">

< filter class =" ch.qos.logback.classic.filter.LevelFilter ">

< level > INFO </ level >

< onMatch > ACCEPT </ onMatch >

< onMismatch > DENY </ onMismatch >

</ filter >

< rollingPolicy

class =" ch.qos.logback.core.rolling.TimeBasedRollingPolicy ">

< fileNamePattern > ${logDir}\%d{yyyyMMdd}\info.log </ fileNamePattern >

< maxHistory > ${maxHistory} </ maxHistory >

</ rollingPolicy >

< encoder >

< pattern > %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger-%msg%n </ pattern >

< charset class =" java.nio.charset.Charset "> UTF-8 </ charset >

</ encoder >

< append > false </ append >

< prudent > false </ prudent >

</ appender >


<!-- DEBUG级别日志 -->

< appender name =" DEBUG "

class =" ch.qos.logback.core.rolling.RollingFileAppender ">

< filter class =" ch.qos.logback.classic.filter.LevelFilter ">

< level > DEBUG </ level >

< onMatch > ACCEPT </ onMatch >

< onMismatch > DENY </ onMismatch >

</ filter >

< rollingPolicy

class =" ch.qos.logback.core.rolling.TimeBasedRollingPolicy ">

< fileNamePattern > ${logDir}\%d{yyyyMMdd}\debug.log </ fileNamePattern >

< maxHistory > ${maxHistory} </ maxHistory >

</ rollingPolicy >

< encoder >

< pattern > %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger-%msg%n </ pattern >

< charset class =" java.nio.charset.Charset "> UTF-8 </ charset >

</ encoder >

< append > false </ append >

< prudent > false </ prudent >

</ appender >

<!--文件日志, 按照每天生成日志文件 -->

< appender name =" FILE " class =" ch.qos.logback.core.rolling.RollingFileAppender ">

< rollingPolicy class =" ch.qos.logback.core.rolling.TimeBasedRollingPolicy ">

<!--日志文件输出的文件名-->

< FileNamePattern > ${logDir}/%d{yyyyMMdd}/boss.%d{yyyy-MM-dd}.log </ FileNamePattern >

<!--日志文件保留天数-->

< MaxHistory > 30 </ MaxHistory >

</ rollingPolicy >

< encoder class =" ch.qos.logback.classic.encoder.PatternLayoutEncoder ">

<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->

< pattern > %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n </ pattern >

</ encoder >

<!--日志文件最大的大小-->

< triggeringPolicy class =" ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy ">

< MaxFileSize > 10MB </ MaxFileSize >

</ triggeringPolicy >

</ appender >


<!-- 异步输出 -->

< appender name =" dayLogAsyncAppender " class =" ch.qos.logback.classic.AsyncAppender ">

< includeCallerData > true </ includeCallerData >

<!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->

< discardingThreshold > 0 </ discardingThreshold >

<!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->

< queueSize > 512 </ queueSize >

< appender-ref ref =" FILE "/>

</ appender >


<!--专为 spring 定制

-->

< logger name =" org.springframework " level =" info "/>

<!-- show parameters for hibernate sql 专为 Hibernate 定制 -->

< logger name =" org.hibernate.type.descriptor.sql.BasicBinder " level =" TRACE " />

< logger name =" org.hibernate.type.descriptor.sql.BasicExtractor " level =" DEBUG " />

< logger name =" org.hibernate.SQL " level =" DEBUG " />

< logger name =" org.hibernate.engine.QueryParameters " level =" DEBUG " />

< logger name =" org.hibernate.engine.query.HQLQueryPlan " level =" DEBUG " />


<!--myibatis log configure-->

<!--

<logger name="com.apache.ibatis" level="TRACE"/>

<logger name="java.sql.Connection" level="DEBUG"/>

<logger name="java.sql.Statement" level="DEBUG"/>

<logger name="java.sql.PreparedStatement" level="DEBUG"/>

-->

<!-- root级别 DEBUG -->

< root level =" INFO ">

<!-- 控制台输出 -->

< appender-ref ref =" STDOUT " />

<!-- 文件输出 -->

< appender-ref ref =" ERROR " />

< appender-ref ref =" INFO " />

< appender-ref ref =" WARN " />

< appender-ref ref =" DEBUG " />

</ root ></ configuration >


大工告成!

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。