spring-boot logback日志常用配置解释

1)引入

spring-boot默认日志系统就是logback日志框架

spring-boot引入logback的maven依赖关系树如下:

2)配置

在application.properties文件中

#backlog setting

logging.config=logback-spring.xml

或者在 application-dev.yml文件中

logging:

config: classpath:logback-spring.xml

logback-spring.xml配置详解

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="false" scanPeriod="10 seconds">
scan:
当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。(这个功能可以在不重启运行环境下,调整打印日志的细节,方便定位问题)
scanPeriod:
设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。
debug:
当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。

Logger 可以被分配级别。级别包括:TRACE、DEBUG、INFO、WARN 和 ERROR

级别排序为: TRACE < DEBUG < INFO < WARN < ERROR
<!--  -->
logger:日志所处的包
level:日志打印级别
     <logger name="org.springframework" level="WARN" />
     <logger name="org.apache.activemq" level="INFO" />
     <logger name="org.apache.zookeeper" level="INFO" />
 com.alibaba.dubbo是dubbo服务的包,在如何是info一下的级别会产生大量的启动日志,调成WARN减少日志输出
     <logger name="com.alibaba.dubbo" level="WARN" />
    com.ztev.audit.dao是本项目的dao层的包,把这个包的打印日志级别调成 DEBUG级别可以看到sql执行
     <logger name="com.ztev.audit.dao" level="DEBUG" />
     <logger name="com.ztev.cardNoVin.dao" level="DEBUG" />

     <!--文件输出的格式设置 -->
     <appender name="FILE"
          class="ch.qos.logback.core.rolling.RollingFileAppender">
          <!-- 文件输出的日志 的格式 -->
          <encoder>
              <pattern>
                   [ %-5level] [%date{yyyy-MM-dd HH:mm:ss}] %logger{96} [%line] - %msg%n
              </pattern>
              <charset>UTF-8</charset> <!-- 此处设置字符集,防止中文乱码 -->
          </encoder>

 样例:
[ INFO ]     [2017-06-09 15:15:59]      org.apache.tomcat.util.net.NioSelectorPool [179] - Using a shared selector for servlet
[ %-5level]  [%date{yyyy-MM-dd HH:mm:ss}]  %logger{96}                             [%line]   %msg%n、
level日志级别  时间                          打印日志所处包.类                          出现代码行  日志信息

          <!-- 配置日志所生成的目录以及生成文件名的规则 在logs/mylog-2016-10-31.0.log -->
          <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
               <fileNamePattern>logs/mylog-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
              <timeBasedFileNamingAndTriggeringPolicy
                   class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                   <!-- 最大64MB 超过最大值,会重新建一个文件-->
                   <maxFileSize>64 MB</maxFileSize>
              </timeBasedFileNamingAndTriggeringPolicy>
          </rollingPolicy>

<filter>:
过滤器,执行一个过滤器会有返回个枚举值,即DENY,NEUTRAL,ACCEPT其中之一。返回DENY,日志将立即被抛弃不再经过其他过滤器;返回NEUTRAL,有序列表里的下个过滤器过接着处理日志;返回ACCEPT,日志会被立即处理,不再经过剩余过滤器。
过滤器被添加到<appender> 中,为<appender> 添加一个或多个过滤器后,可以用任意条件对日志进行过滤。<appender> 有多个过滤器时,按照配置顺序执行。

          <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
              <level>DEBUG</level>
          </filter>
          <!-- Safely log to the same file from multiple JVMs. Degrades performance! -->
<prudent>:如果是 true,日志会被安全的写入文件,即使其他的FileAppender也在向此文件做写入操作,效率低,默认是 false。
     <prudent>true</prudent>
     </appender>

     <!--控制台输出的格式设置 -->
     <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
          <!-- 控制台输出的日志 的格式 -->
          <encoder>
              <pattern>
                   [ %-5level] [%date{yyyy-MM-dd HH:mm:ss}] %logger{96} [%line] - %msg%n
              </pattern>
              <charset>UTF-8</charset> <!-- 此处设置字符集 -->
          </encoder>
          <!-- 只是DEBUG级别以上的日志才显示 -->
          <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
              <level>DEBUG</level>
          </filter>
     </appender>

     <!-- Enable FILE and STDOUT appenders for all log messages. By default,
          only log at level INFO and above. -->
root:
也是<loger>元素,但是它是根loger。只有一个level属性,应为已经被命名为"root".
level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,不能设置为INHERITED或者同义词NULL。默认是DEBUG。

     <root level="INFO">
          <appender-ref ref="FILE" />
          <appender-ref ref="STDOUT" />
     </root></configuration>
时间: 2024-10-17 02:18:31

spring-boot logback日志常用配置解释的相关文章

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

参考Spring Boot官方文档 日志部分 Spring Boot默认情况下,当使用"Starters" 使用Logback输出日志, 还包括适当的Logback路由, 确保其他的日志框架(Java Util Logging, Commons Logging, Log4j, SLF4J)都能正常使用 Sping Boot文档的 26.5 Custom Log Configuration 章节,说明了自定义日志配置方法 多样的日志系统可以通过 添加适当的日志框架库到classpath

spring boot logback 日志配置

文件名为: logback-spring.xml, 放在resources的根目录下,日志配置内容如下: <?xml version="1.0" encoding="UTF-8"?> <configuration> <!-- 日志路径,可以读取application.yml文件的具体配置 --> <springProperty scope="context" name="LOG_DIR"

Spring Boot 之日志记录

Spring Boot 之日志记录 Spring Boot 支持集成 Java 世界主流的日志库. 如果对于 Java 日志库不熟悉,可以参考:细说 Java 主流日志工具库 关键词: log4j, log4j2, logback, slf4j 日志格式 控制台输出 彩色打印 文件输出 日志级别 日志组 日志配置文件 Spring Boot 中的日志配置 源码 引申和引用 Spring Boot 内部日志全部使用 Commons Logging 记录,但保留底层日志实现.为 Java Util

Spring Boot - Logback配置日志要考虑哪些因素

Spring Boot - Logback配置日志 出于性能等原因,Logback 目前是springboot应用日志的标配: 当然有时候在生产环境中也会考虑和三方中间件采用统一处理方式.@pdai Spring Boot - Logback配置日志 配置时考虑点 实现范例 综合范例 在配置前可以参考如下文章 參考文档 代码示例 最全的Java后端知识体系 https://www.pdai.tech, 每天更新中.... 配置时考虑点 支持日志路径,日志level等配置 日志控制配置通过appl

Spring Boot系列——日志配置

日志,通常不会在需求阶段作为一个功能单独提出来,也不会在产品方案中看到它的细节.但是,这丝毫不影响它在任何一个系统中的重要的地位. 为了保证服务的高可用,发现问题一定要即使,解决问题一定要迅速,所以生产环境一旦出现问题,预警系统就会通过邮件.短信甚至电话的方式实施多维轰炸模式,确保相关负责人不错过每一个可能的bug. 预警系统判断疑似bug大部分源于日志.比如某个微服务接口由于各种原因导致频繁调用出错,此时调用端会捕获这样的异常并打印ERROR级别的日志,当该错误日志达到一定次数出现的时候,就会

spring boot slf4j日记记录配置详解

转 spring boot slf4j日记记录配置详解 2017年12月26日 12:03:34 阅读数:1219 Spring-Boot--日志操作[全局异常捕获消息处理?日志控制台输出+日志文件记录] 最好的演示说明,不是上来就贴配置文件和代码,而是,先来一波配置文件的注释,再来一波代码的测试过程,最后再出个技术在项目中的应用效果,这样的循序渐进的方式,才会让读者更加清楚的理解一项技术是如何运用在项目中的,虽然本篇很简单,几乎不用手写什么代码,但是,比起网上其他人写的同类型的文章来说,我只能

logback logback.xml常用配置详解(三) &lt;filter&gt;

转自:logback logback.xml常用配置详解(三) <filter> logback 常用配置详解(三) <filter> <filter>: 过滤器,执行一个过滤器会有返回个枚举值,即DENY,NEUTRAL,ACCEPT其中之一.返回DENY,日志将立即被抛弃不再经过其他过滤器:返回NEUTRAL,有序列表里的下个过滤器过接着处理日志:返回ACCEPT,日志会被立即处理,不再经过剩余过滤器. 过滤器被添加到<Appender> 中,为<

Spring Boot 探索系列 - 自动化配置篇

26. Logging Prev  Part IV. Spring Boot features  Next 26. Logging Spring Boot uses Commons Logging for all internal logging, but leaves the underlying log implementation open. Default configurations are provided for Java Util Logging,Log4J, Log4J2 an

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

在继续上一篇的Debug调试之后,把spring boot的日志框架使用情况逐步蚕食. ============================================================================================= 简介:spring boot的默认日志框架Logback SLF4J--Simple Logging Facade For Java,它是一个针对于各类Java日志框架的统一Facade抽象.Java日志框架众多--常用的有