首页 > 其他分享 >logback-spring.xml日志配置

logback-spring.xml日志配置

时间:2022-11-14 10:46:12浏览次数:54  
标签:xml %- MM spring dd yyyy ss logback

遇到任何事情,可以放弃,但是永远要有面对的勇气

  1. 引入对应pom依赖

<dependency>    
   <groupId>org.springframework.boot</groupId>    
   <artifactId>spring-boot-starter-web</artifactId>
</dependency>

依赖关系图

  1. 在application.yml文件里配置文件地址

# 日志配置
logging:
config: classpath:logback-spring-local.xml
  1. logback-spring-local.xml 文件配置 (根据不同项目略作调整)

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
   <!-- 定义日志文件的存储地址 -->
   <springProperty scop="context" name="spring.application.name" source="spring.application.name" defaultValue=""/>
   <property name="LOG_HOME" value="logs/${spring.application.name}"/>

   <!-- 控制台输出 -->
   <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
       <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}:%L - %msg%n</pattern>
       </encoder>
       <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
           <!--与ThresholdFilter的区别,允许onmatch-->
           <!--设置日志级别 接收info级别的日志-->
           <level>DEBUG</level>
       </filter>
   </appender>

   <!-- 按照每天生成日志文件 DEBUG以上级别的日志,仅用于测试环境,正式环境为info级别以上的日志 -->
   <appender name="RollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
       <!-- 文件路径 -->
       <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
           <!--历史日志文件输出的文件名 -->
           <FileNamePattern>${LOG_HOME}/wvp-%d{yyyy-MM-dd}.%i.log</FileNamePattern>
           <!--日志文件保留天数 -->
           <MaxHistory>30</MaxHistory>
           <maxFileSize>20MB</maxFileSize>
       </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}:%L - %msg%n</pattern>
       </encoder>
       <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
           <!--与ThresholdFilter的区别,允许onmatch-->
           <!--设置日志级别 接收info级别的日志-->
           <level>DEBUG</level>
       </filter>
   </appender>

   <!-- 生成 error格式日志开始 -->
   <appender name="RollingFileError" class="ch.qos.logback.core.rolling.RollingFileAppender">
       <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
           <!--历史日志文件输出的文件名 -->
           <FileNamePattern>${LOG_HOME}/error-%d{yyyy-MM-dd}.%i.log</FileNamePattern>
           <!--日志文件保留天数 -->
           <MaxHistory>30</MaxHistory>
           <maxFileSize>20MB</maxFileSize>
       </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}:%L - %msg%n</pattern>
       </encoder>
       <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
           <!--设置日志级别,过滤掉info日志,只输入error日志-->
           <level>WARN</level>
           <!-- <onMatch>ACCEPT</onMatch> &lt;!&ndash; 用过滤器,只接受ERROR级别的日志信息,其余全部过滤掉 &ndash;&gt;-->
           <!-- <onMismatch>DENY</onMismatch>-->
       </filter>
   </appender>

   <!-- 生成SIP日志追加 -->
   <appender name="sipRollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
       <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
           <!--历史日志文件输出的文件名 -->
           <FileNamePattern>${LOG_HOME}/sip-%d{yyyy-MM-dd}.%i.log</FileNamePattern>
           <!--日志文件保留天数 -->
           <MaxHistory>30</MaxHistory>
           <maxFileSize>50MB</maxFileSize>
       </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}:%L - %msg%n</pattern>
       </encoder>
   </appender>

   <!-- 日志输出级别 -->
   <root level="INFO">
       <appender-ref ref="STDOUT"/>
   </root>

   <!-- name:用来指定受此logger约束的某一个包或者具体的某一个类 -->
   <logger name="com.example.wvpdisassembly" level="debug" additivity="true">
       <appender-ref ref="RollingFileError"/>
       <appender-ref ref="RollingFile"/>
   </logger>

   <logger name="com.example.wvpdisassembly.gb28181" level="debug" additivity="true">
       <appender-ref ref="RollingFileError"/>
       <appender-ref ref="sipRollingFile"/>
   </logger>

</configuration>
 

标签:xml,%-,MM,spring,dd,yyyy,ss,logback
From: https://www.cnblogs.com/l12138h/p/16888271.html

相关文章

  • 源码学习之Spring容器创建原理
    1前言众所周知,Spring可以帮我们管理我们需要的bean。在我们需要用到这些bean的时候,可以很方便的获取到它,然后进行一系列的操作。比如,我们定义一个beanMyTestBeanpubliccl......
  • Spring Boot + Flowable 快速实现工作流,So Easy!
    总览使用flowable自带的flowable-ui制作流程图使用springboot开发流程使用的接口完成流程的业务功能一、flowable-ui部署运行flowable-6.6.0运行官方demo参考文档:​​http......
  • 源码学习之Spring容器创建原理
    1前言众所周知,Spring可以帮我们管理我们需要的bean。在我们需要用到这些bean的时候,可以很方便的获取到它,然后进行一系列的操作。比如,我们定义一个beanMyTestBeanpubli......
  • 外网访问内网SpringBoot【免费内网穿透】
    在本地搭建的SpringBoot项目,在内网能够正常访问,想要在外网环境下也能够访问,可以做内网穿透来实现,不需要公网IP,也不需要进入到路由器配置。这里主要介绍通过cpolar内网穿透......
  • Spring Boot 整合 HBase
    HBase介绍HBase是一个分布式的、面向列的开源数据库,Hadoop数据库。搭建基于Hadoop和ZK。历史是基于Google的Bigtable、Google文件系统等论文。HBase在Hadoop......
  • SpringAop入门学习(注解与配置文件版)
    SpringAop入门学习(注解与配置文件版)一、使用注解形式来完成Aop学习步骤一:创建maven项目,在pom.xml文件中输入以下两个坐标:<dependencies><!--spring坐标--......
  • SpringMVC执行流程(理解)-流程,小总结
    SpringMVC执行流程(理解)使用的案例还是上一篇的博客第1章SpringMVC*概述-注册中央调度区,定义页面,修改视图解析器-a-tao必须奥利给-博客园(cnblogs.com)1.使用Sp......
  • Spring —— AOP总结
    AOP总结              ......
  • 第1章SpringMVC*概述-注册中央调度区,定义页面,修改视图解析器
    第1章SpringMVC概述1.1SpringMVC简介SpringMVC也叫Springwebmvc。是Spring框架的一部分,是在Spring3.0后发布的。1.2SpringMVC优点1.基于MVC架构......
  • idea+maven+springboot如何配置Mybatis-plus并测试简单用例
    用例情况如上图,假设我们需要读取ywj数据库中的dept表中的记录 大致步骤1、首先,需要在对应maven工程的.pom文件中引入相应的依赖,包括mybatis-plus-boot-starter、mysq......