强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan

【前言】

日志对一个系统的重要性不言而喻;日志通常是在排查问题时给人看,一个友好的输出样式让人看到后赏心悦目,排查效率通常也会随之提高;下面为大家共享一下通过设置logback日志输出格式,打印出令人欣喜的日志样式。

【搞一下日志格式】

一、未指定日志格式,日志输出

1、代码实现

(1)演示日志输出控制器

/*

2、项目部署服务器后访问打印日志的效果

二、指定日志格式,日志输出

1、代码实现

(1)演示日志输出控制器(同上)

(2)在项目的resources目录下增加logback.xml设置打印格式,logback.xml内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!-- 说明: 1、日志级别及文件 日志记录采用分级记录,级别与日志文件名相对应,不同级别的日志信息记录到不同的日志文件中 例如:error级别记录到log_error_xxx.log或log_error.log(该文件为当前记录的日志文件),而log_error_xxx.log为归档日志,日志文件按日期记录,同一天内,若日志文件大小等于或大于2M,则按0、1、2...顺序分别命名 例如log-level-2013-12-21.0.log其它级别的日志也是如此。 2、文件路径 若开发、测试用,在Eclipse中运行项目,则到Eclipse的安装路径查找logs文件夹,以相对路径../logs。若部署到Tomcat下,则在Tomcat下的logs文件中 3、Appender FILEERROR对应error级别,文件名以log-error-xxx.log形式命名FILEWARN对应warn级别,文件名以log-warn-xxx.log形式命名 FILEINFO对应info级别,文件名以log-info-xxx.log形式命名FILEDEBUG对应debug级别,文件名以log-debug-xxx.log形式命名 stdout将日志信息输出到控制上,为方便开发测试使用 -->
<configuration><springProperty scope="context" name="LOG_HOME" source="spring.application.name"/><springProfile name="local"><property name="LOG_PATH" value="D:/www/logs/common"/> <!-- 日志保存目录 --></springProfile><springProfile name="dev"><property name="LOG_PATH" value="/data/logs/common" /> <!-- 日志保存目录 --></springProfile><property name="appName" value="common"/><property name="maxSaveDays" value="365"/><!-- 日志最大保存天数 --><property name="maxFileSize" value="200MB"/><!-- 单个文件最大大小 --><appender name="stdout" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss} %highlight(%-5level) %green([${LOG_HOME},%X{X-B3-TraceId:-},%X{X-B3-SpanId:-},%X{X-Span-Export:-}]) %magenta(${PID:-}) %white(---) %-20(%yellow([%20.20thread])) %-55(%cyan(%.32logger{30}:%L)) %highlight(- %msg%n)</pattern><charset>UTF-8</charset></encoder></appender><appender name="rollingFileConsole" class="ch.qos.logback.core.rolling.RollingFileAppender"><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${LOG_PATH}/${appName}-log-console-%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern><maxHistory>${maxSaveDays}</maxHistory> <!--max save days --><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>${maxFileSize}</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss} %highlight(%-5level) %green([${LOG_HOME},%X{X-B3-TraceId:-},%X{X-B3-SpanId:-},%X{X-Span-Export:-}]) %magenta(${PID:-}) %white(---) %-20(%yellow([%20.20thread])) %-55(%cyan(%.32logger{30}:%L)) %highlight(- %msg%n)</pattern><charset>UTF-8</charset></encoder></appender><appender name="rollingFileInfo" class="ch.qos.logback.core.rolling.RollingFileAppender"><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${LOG_PATH}/${appName}-log-info-%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern><maxHistory>${maxSaveDays}</maxHistory> <!--max save days --><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>${maxFileSize}</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy><encoder><pattern>%d{"yyyy-MM-dd HH:mm:ss,SSS"}[%X{userId}|%X{sessionId}][%p][%c{0}-%M]-%m%n</pattern><charset>UTF-8</charset></encoder><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>ERROR</level><onMatch>DENY</onMatch><onMismatch>ACCEPT</onMismatch></filter></appender><appender name="rollingFileError" class="ch.qos.logback.core.rolling.RollingFileAppender"><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${LOG_PATH}/${appName}-log-error-%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern><maxHistory>${maxSaveDays}</maxHistory> <!--max save days --><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>${maxFileSize}</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy><encoder><pattern>%d{"yyyy-MM-dd HH:mm:ss,SSS"}[%X{userId}|%X{sessionId}][%p][%c{0}-%M]-%m%n</pattern><charset>UTF-8</charset></encoder><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>ERROR</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter></appender>    <!-- 为单独的包配置日志级别,若root的级别大于此级别, 此处级别也会输出 应用场景:生产环境一般不会将日志级别设置为trace或debug,但是为详细的记录SQL语句的情况,可将hibernate的级别设置为debug,如此一来,日志文件中就会出现hibernate的debug级别日志, 而其它包则会按root的级别输出日志 --><!-- <logger name="org.springframework" level="DEBUG" /> --><logger name="com.ibatis" level="DEBUG"/><logger name="com.ibatis.common.jdbc.SimpleDataSource" level="DEBUG"/><logger name="com.ibatis.common.jdbc.ScriptRunner" level="DEBUG"/><logger name="com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate"level="INFO"/><logger name="java.sql.Connection" level="DEBUG"/><logger name="java.sql.Statement" level="DEBUG"/><logger name="java.sql.PreparedStatement" level="DEBUG"/><logger name="com.netflix.discovery" additivity="true" level="ERROR"/><!-- 生产环境,将此级别配置为适合的级别,以名日志文件太多或影响程序性能 --><root level="INFO"><appender-ref ref="rollingFileConsole"/><appender-ref ref="rollingFileInfo"/><appender-ref ref="rollingFileError"/><appender-ref ref="stdout"/></root>
</configuration>

3、项目部署服务器后访问打印日志的效果

4、查看日志记录文件,效果也一样,效果图:

三、项目地址

1、地址:https://github.com/dangnianchuntian/springboot

2、代码版本:1.5.0-Release

【总结】

1、通过设定日志格式,输出的样式更加人性化,错误也更加明显;

2、这个小小的改变,使得在排查程序时更加的赏心悦目,心情上的开心将在无形中增加排错的效率;

spring logback mysql_logback 日志输出格式相关推荐

  1. logback 日志输出格式

    强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan [前言] 日志对一个系统的重要性不言而喻:日志通常是在排查问题时给人看,一个友好的输出样式让人看 ...

  2. 【spring boot】8.spring boot的日志框架logback使用

    在继续上一篇的Debug调试之后,把spring boot的日志框架使用情况逐步蚕食. 参考:http://tengj.top/2017/04/05/springbo 开篇之前,贴上完整applica ...

  3. Spring Boot 使用 Log4j2 Logback 输出日志到 EKL

    文章目录 1.ELK 介绍 2.环境.软件准备 3.ELK 环境搭建 4.Spring Boot 配置示例 4.1.Log4j2 方式配置 4.2.Logback 方式配置 1.ELK 介绍 ELK ...

  4. spring boot日志框架体系剖析(默认采用logback作为日志框架)

      一定要排除依赖,才能使用中间转换包,要不然就会出现依赖冲突: spring boot对日志输出级别等作出了默认配置: 替换springboot默认的配置: 切换到log4j: pom依赖排除: l ...

  5. qt能使用logback_Spring boot使用logback实现日志配置

    欢迎关注头条号:老顾聊技术 精品原创技术分享,知识的组装工 目录 前言 常用日志组件 什么是日志门面和日志实现 常见的日志框架 日志使用 @slf4j注解 日志的配置 logback-spring配置 ...

  6. Spring boot指定日志配置

    指定日志配置 给类路径下,放上每个日志框架,自己的配置文件即可 SpringBoot就不使用,默认配置的了 Spring文件名区别 logback.xml 直接就被日志框架识别了 logback-sp ...

  7. SpringBoot 项目使用 SLF4J+logback 进行日志记录,来增强可维护性

    点击上方 好好学java ,选择 星标 公众号重磅资讯,干货,第一时间送达 今日推荐:推荐19个github超牛逼项目!个人原创100W +访问量博客:点击前往,查看更多 作者:云深不知处 blog. ...

  8. Spring Boot + Log4j2 日志框架配置 (Maven)

    参考Spring Boot官方文档 日志部分 Spring Boot默认情况下,当使用"Starters" 使用Logback输出日志 , 还包括适当的Logback路由, 确保其 ...

  9. java lombok logback 配置日志打印

    一.maven 引入 <dependency><groupId>org.projectlombok</groupId><artifactId>lombo ...

最新文章

  1. 第十六届全国大学生智能汽车竞赛总决赛 AI视觉组线上赛细则
  2. SSH配置优化和慢的解决方法
  3. VTK:可视化算法之TensorAxes
  4. spring mvc绑定对象String转Date解决入参不能是Date的问题
  5. D - ABC Conjecture Gym - 102798D
  6. Spring中的Aop底层原理
  7. 物流软件之Microcity介绍
  8. vista中如何解决金山词霸延时问题
  9. 如何在一台电脑上安装2个以上JDK
  10. 计算机验证iq oq pq,验证、确认、鉴定过程、DQ、IQ、OQ、PQ这几个概念如何理解?...
  11. form表单提交中的input,button,submit
  12. html设计方案,网页设计经典方案
  13. uni-app h5 上传图片 压缩图片
  14. 布尔运算(Boolean Operators)
  15. java ckfinder中文_CKfinder中文乱码的解决.
  16. 苹果查看电池实际容量
  17. 马云谈年轻人压力大:年轻人怕压力就白活了
  18. 吉林大学计算机研究生成绩计算方法,关于同济大学研究生成绩计算方法的说明...
  19. 关于码距、检错、纠错
  20. PaddleHub一键识别动物 : resnet50_vd_animals

热门文章

  1. python爬虫beautifulsoup爬当当网_Python爬虫包 BeautifulSoup 递归抓取实例详解_python_脚本之家...
  2. golang mysql proxy_mixer: 一个用go实现的mysql proxy
  3. 安卓手机如何投屏到电视上_手机如何投屏到电视机上?
  4. 推荐一套开源通用后台管理系统(附源码)
  5. 深入理解Java虚拟机(第三弹)- JVM 内存分配与回收策略原理,从此告别 JVM 内存分配文盲
  6. java基础(二) 自增自减与贪心规则
  7. 插入排序算法 及其二分搜索优化版 C++代码实现 恋上数据结构笔记
  8. Junit单元测试遇到的initializationerror:method initializationerror not found
  9. (JAVA学习笔记) 关于i++和++i的区别
  10. 手动创建1个基于xml配置的springmvc 项目(without Maven)