您的位置:首页 > 游戏 > 游戏 > logback-spring.xml 小记

logback-spring.xml 小记

2024/9/24 23:28:38 来源:https://blog.csdn.net/banyoyo/article/details/139776092  浏览:    关键词:logback-spring.xml 小记
  • 为什么不用logback.xml 名字

加载顺序:logback.xml>application.yml>logback-spring.xml

使用xml中使用到配置文件属性时,就会报错

  • 为什么logback中记录不到运行时报错

logback获取不到堆栈错误

解决办法:在全局错误出使用log.error()指定输出

  • 为什么打印不出来mybatis-plus的sql日志

配置mq,使用 org.apache.ibatis.logging.stdout.StdOutImpl 使用的是System.out.println(s);

所以打印不出来

控制台打印

正确使用:

 配置mq,使用 org.apache.ibatis.logging.slf4j.Slf4jImpl,并且配置项目mapper目录为DEBUG

 控制台打印,看前面带有DEBUG

 参考文章(博主有源码详细解释):springboot 下mybatis-plus 如何打印sql日志和参数到日志文件_jsqlparsercountoptimize sql=-CSDN博客

当然可以自己定义打印sql,与 StdOutImpl 一样实现org.apache.ibatis.logging.Log,进行编辑

 附带logback-spring.xml

<?xml version="1.0" encoding="UTF-8"?>
<!-- scan 当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。 -->
<!-- scanPeriod 设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。 -->
<!-- debug 当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 -->
<configuration scan="true" scanPeriod="60 seconds" debug="false"><!-- 生成文件名前缀 --><springProperty name="FILE_PREFIX" source="logging.file.name" /><!-- 输出文件路径 --><springProperty name="OPEN_FILE_PATH" source="logging.file.path"/><!-- 文件保存时间 这里是7天 --><property name="EXIST_TIME" value="7"/><!-- 文件输出格式 --><property name="PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"/><!-- 日志文件最大的大小 --><property name="MAX_FILE_SIZE" value="10MB"/><!--  控制台输出  --><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>${PATTERN}</pattern><charset>UTF-8</charset></encoder></appender><!-- 输出到all文件 这里是全部的日志内容 --><appender name="ALL" class="ch.qos.logback.core.rolling.RollingFileAppender"><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!--日志文件输出的文件名--><FileNamePattern>${OPEN_FILE_PATH}/${FILE_PREFIX}_ALL_%d{yyyy-MM-dd}-%i.log</FileNamePattern><!--日志文件保留天数--><MaxHistory>${EXIST_TIME}</MaxHistory><cleanHistoryOnStart>true</cleanHistoryOnStart><TimeBasedFileNamingAndTriggeringPolicyclass="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><!--日志文件最大的大小--><MaxFileSize>${MAX_FILE_SIZE}</MaxFileSize></TimeBasedFileNamingAndTriggeringPolicy></rollingPolicy><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n</pattern><charset>utf-8</charset></encoder></appender><!--输出到error文件--><appender name="error" class="ch.qos.logback.core.rolling.RollingFileAppender"><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><FileNamePattern>${OPEN_FILE_PATH}/${FILE_PREFIX}_ERROR_%d{yyyy-MM-dd}-%i.log</FileNamePattern><MaxHistory>30</MaxHistory><cleanHistoryOnStart>true</cleanHistoryOnStart><TimeBasedFileNamingAndTriggeringPolicyclass="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><MaxFileSize>${MAX_FILE_SIZE}</MaxFileSize></TimeBasedFileNamingAndTriggeringPolicy></rollingPolicy><append>true</append><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n</pattern><charset>utf-8</charset></encoder><!-- 只打印ERROR日志 --><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>ERROR</level><!-- 匹配时的操作:接收(记录) --><onMatch>ACCEPT</onMatch><!-- 不匹配时的操作:拒绝(不记录) --><onMismatch>DENY</onMismatch></filter></appender><!-- 异步写日志 --><appender name="ASYNC_FILE" class="ch.qos.logback.classic.AsyncAppender"><discardingThreshold>0</discardingThreshold><queueSize>1024</queueSize><appender-ref ref="ALL"/></appender><appender name="ASYNC_ERROR_FILE" class="ch.qos.logback.classic.AsyncAppender"><discardingThreshold>0</discardingThreshold><queueSize>1024</queueSize><appender-ref ref="error"/></appender><!--  默认输出info等级,然后再根据各自的拦截过滤规则去处理  --><root level="info"><appender-ref ref="STDOUT"/><appender-ref ref="ASYNC_FILE"/><appender-ref ref="ASYNC_ERROR_FILE" /></root></configuration>

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com