网站建设好的,重庆百度推广排名优化,链接转二维码,彭水网站建设推广项目打印日志能帮助我们解决很多的问题#xff0c;提示我们出现的问题#xff0c;通过日志我们可以准确的定位问题快速找到问题点解决问题。
?xml version1.0 encodingUTF-8?
!-- 日志级别从低到高分为TRACE DEBUG INFO 提示我们出现的问题通过日志我们可以准确的定位问题快速找到问题点解决问题。
?xml version1.0 encodingUTF-8?
!-- 日志级别从低到高分为TRACE DEBUG INFO WARN ERROR FATAL如果设置为WARN则低于WARN的信息都不会输出 --
!-- scan:当此属性设置为true时配置文档如果发生改变将会被重新加载默认值为true --
!-- scanPeriod:设置监测配置文档是否有修改的时间间隔如果没有给出时间单位默认单位是毫秒。当scan为true时此属性生效。默认的时间间隔为1分钟。 --
!-- debug:当此属性设置为true时将打印出logback内部日志信息实时查看logback运行状态。默认值为false。 --
configuration scantrue scanPeriod30 seconds!-- 彩色日志依赖 --conversionRule conversionWordclr converterClassorg.springframework.boot.logging.logback.ColorConverter/conversionRule conversionWordwexconverterClassorg.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter/conversionRule conversionWordwExconverterClassorg.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter/!-- 日志文件储存地址, 通过application配置文件传入 --!-- springProperty scopecontext nameLOG_PATH sourcelogback.logDir /--!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径--property nameLOG_PATH value./logs/springProperty scopecontext nameLOG_NAME sourcespring.application.name/!-- 控制台彩色日志格式 --property nameCONSOLE_LOG_PATTERNvalue${CONSOLE_LOG_PATTERN:-%clr(%d{${LOG_DATEFORMAT_PATTERN:-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}}/!-- 日志文件日志格式 --property nameFILE_LOG_PATTERNvalue${FILE_LOG_PATTERN:-%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}} ${LOG_LEVEL_PATTERN:-%5p} ${PID:- } --- [%15t] %-40.40logger{39} : %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}/!-- 控制台输出 --appender nameCONSOLE classch.qos.logback.core.ConsoleAppenderencoder classch.qos.logback.classic.encoder.PatternLayoutEncoderpattern${CONSOLE_LOG_PATTERN}/patterncharsetUTF-8/charset/encoderfilter classch.qos.logback.classic.filter.LevelFilteronMatchACCEPT/onMatchonMismatchDENY/onMismatch/filter/appender!-- 按照每天及大小生成日志文件 --appender nameFILE classch.qos.logback.core.rolling.RollingFileAppenderrollingPolicy classch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy!--日志文件输出的文件名--FileNamePattern${LOG_PATH}/${LOG_NAME}.%d{yyyy-MM-dd}.%i.log/FileNamePattern!--日志文件最大大小--maxFileSize100MB/maxFileSize!--日志文件保留天数--maxHistory30/maxHistory/rollingPolicyencoder classch.qos.logback.classic.encoder.PatternLayoutEncoderpattern${FILE_LOG_PATTERN}/patterncharsetUTF-8/charset/encoder!-- 过滤级别,如果想分类生成日志文件的话(分成debug、info、error等三个日志文件, 每个文件只记录自己级别的日志),1. 直接把这个 appender 复制三分改一下 FileNamePattern 和 name.2. 把 filter 注释去掉改一下 level 就可以了--!-- filter classch.qos.logback.classic.filter.LevelFilter--!-- levelinfo/level--!-- onMatchACCEPT/onMatch--!-- onMismatchDENY/onMismatch--!-- /filter--/appender!--配置异步日志--appender nameFILE_ASYNC classch.qos.logback.classic.AsyncAppender!--不丢失日志默认的如果队列的80%已满 则会丢弃TRACTDEBUGINFO级别的日志--discardingThreshold0/discardingThreshold!--更改默认的队列的深度改值会影响性能默认值是256--queueSize512/queueSize!--添加附加的appender,最多只能添加一个--appender-ref refFILE//appender!-- 日志输出级别如果使用springProfile, 就需要在application配置文件中通过 spring.profiles.activedev 来指定环境,也可以直接去掉 springProfile 这个标签或者把它整个注释掉--springProfile namegzl,prodroot levelINFOappender-ref refCONSOLE/appender-ref refFILE//root!--项目包的路径--logger namecom.gzl.oms.mapper levelDEBUG additivityfalseappender-ref refCONSOLE/appender-ref refFILE//loggerlogger namecom.gzl.common levelDEBUG additivityfalseappender-ref refCONSOLE/appender-ref refFILE//logger!--包--!--logger namecom.gzl.base.mapper levelOFF/logger--!--类--!--logger namecom.gzl.base.mapper.UserMapper. levelOFF/logger--!--方法--!--logger namecom.gzl.base.controller.UserController.selectUserRoleAuthority levelOFF/logger--!--不打印某个类下的日志--!-- logger namecom.gzl.base.mapper.ProductInfoMapper levelOFF/--/springProfile/configuration打印日志的时候没有打印线程id 解决方案是添加线程id [%X{trackID}]比如
property nameCONSOLE_LOG_PATTERN value${CONSOLE_LOG_PATTERN:-%clr(%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}}){faint} [%X{trackID}] %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}} /
!-- 日志文件日志格式 --
property nameFILE_LOG_PATTERN value${FILE_LOG_PATTERN:-%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}} ${LOG_LEVEL_PATTERN:-%5p} [%X{trackID}] [%15t] %-40.40logger{39} : %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}} /
不是一个项目的配置问题 可能会有差异。
还有一个方法是添加引用链路追踪用的是springcloud不需要添加引用版本号
dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-sleuth/artifactId
/dependency
然后在配置文件中开启配置
spring:sleuth:enabled: true
这时候你能看到打印的线程id
有了线程id我们能完整看到一个方法调用的全链路打印日志对处理问题很有帮助