返回顶部
首页 > 资讯 > 后端开发 > Python >Spring Boot console log 格式自定义方式
  • 856
分享到

Spring Boot console log 格式自定义方式

2024-04-02 19:04:59 856人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

Spring Boot console log 格式自定义 spring Boot 默认使用Logback 新增配置项:logging.pattern.console loggi

Spring Boot console log 格式自定义

spring Boot 默认使用Logback

新增配置项:logging.pattern.console


logging.pattern.console=%date %level [%thread] %logger{10} [%file:%line] - %msg%n

SpringBoot 自定义日志格式输出

application.properties配置


logging.config=classpath:logback-spring.xml
logging.path=C:/opt/logs/

logback-spring.xml配置


<?xml version="1.0" encoding="UTF-8"?>
<!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出 -->
<!-- scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true -->
<!-- scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。 -->
<!-- debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 -->
<configuration scan="true" scanPeriod="10 seconds">
 
 <!--<include resource="org/springframework/boot/logging/logback/base.xml" />-->
 
 <contextName>logback</contextName>
 <!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义变量后,可以使“${}”来使用变量。 -->
 <property name="log.path" value="C:/opt/logs/" />
 
 <!-- 彩色日志 -->
 <!-- 彩色日志依赖的渲染类 -->
 <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
 <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
 <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
 <!-- 彩色日志格式 -->
 <property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{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}}"/>
 
 
 <!--输出到控制台-->
 <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
 <!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
 <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
 <level>debug</level>
 </filter>
 <encoder>
 <Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
 <!-- 设置字符集 -->
 <charset>UTF-8</charset>
 </encoder>
 </appender>
 
 
 <!--输出到文件-->
 
 <!-- 时间滚动输出 level为 DEBUG 日志 -->
 <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
 <!-- 正在记录的日志文件的路径及文件名 -->
 <file>${log.path}/log_debug.log</file>
 <!--日志文件输出格式-->
 <encoder>
 <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
 <charset>UTF-8</charset> <!-- 设置字符集 -->
 </encoder>
 <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
 <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
 <!-- 日志归档 -->
 <fileNamePattern>${log.path}/debug/log-debug-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
 <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
 <maxFileSize>100MB</maxFileSize>
 </timeBasedFileNamingAndTriggeringPolicy>
 <!--日志文件保留天数-->
 <maxHistory>15</maxHistory>
 </rollingPolicy>
 <!-- 此日志文件只记录debug级别的 -->
 <filter class="ch.qos.logback.classic.filter.LevelFilter">
 <level>debug</level>
 <onMatch>ACCEPT</onMatch>
 <onMismatch>DENY</onMismatch>
 </filter>
 </appender>
 
 <!-- 时间滚动输出 level为 INFO 日志 -->
 <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
 <!-- 正在记录的日志文件的路径及文件名 -->
 <file>${log.path}/log_info.log</file>
 <!--日志文件输出格式-->
 <encoder>
 <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
 <charset>UTF-8</charset>
 </encoder>
 <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
 <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
 <!-- 每天日志归档路径以及格式 -->
 <fileNamePattern>${log.path}/info/log-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
 <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
 <maxFileSize>100MB</maxFileSize>
 </timeBasedFileNamingAndTriggeringPolicy>
 <!--日志文件保留天数-->
 <maxHistory>15</maxHistory>
 </rollingPolicy>
 <!-- 此日志文件只记录info级别的 -->
 <filter class="ch.qos.logback.classic.filter.LevelFilter">
 <level>info</level>
 <onMatch>ACCEPT</onMatch>
 <onMismatch>DENY</onMismatch>
 </filter>
 </appender>
 
 <!-- 时间滚动输出 level为 WARN 日志 -->
 <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
 <!-- 正在记录的日志文件的路径及文件名 -->
 <file>${log.path}/log_warn.log</file>
 <!--日志文件输出格式-->
 <encoder>
 <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
 <charset>UTF-8</charset> <!-- 此处设置字符集 -->
 </encoder>
 <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
 <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
 <fileNamePattern>${log.path}/warn/log-warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
 <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
 <maxFileSize>100MB</maxFileSize>
 </timeBasedFileNamingAndTriggeringPolicy>
 <!--日志文件保留天数-->
 <maxHistory>15</maxHistory>
 </rollingPolicy>
 <!-- 此日志文件只记录warn级别的 -->
 <filter class="ch.qos.logback.classic.filter.LevelFilter">
 <level>warn</level>
 <onMatch>ACCEPT</onMatch>
 <onMismatch>DENY</onMismatch>
 </filter>
 </appender>
  
 <!-- 时间滚动输出 level为 ERROR 日志 -->
 <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
 <!-- 正在记录的日志文件的路径及文件名 -->
 <file>${log.path}/log_error.log</file>
 <!--日志文件输出格式-->
 <encoder>
 <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
 <charset>UTF-8</charset> <!-- 此处设置字符集 -->
 </encoder>
 <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
 <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
 <fileNamePattern>${log.path}/error/log-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
 <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
 <maxFileSize>100MB</maxFileSize>
 </timeBasedFileNamingAndTriggeringPolicy>
 <!--日志文件保留天数-->
 <maxHistory>15</maxHistory>
 </rollingPolicy>
 <!-- 此日志文件只记录ERROR级别的 -->
 <filter class="ch.qos.logback.classic.filter.LevelFilter">
 <level>ERROR</level>
 <onMatch>ACCEPT</onMatch>
 <onMismatch>DENY</onMismatch>
 </filter>
 </appender>
 
 <!--
 <logger>用来设置某一个包或者具体的某一个类的日志打印级别、
 以及指定<appender>。<logger>仅有一个name属性,
 一个可选的level和一个可选的addtivity属性。
 name:用来指定受此logger约束的某一个包或者具体的某一个类。
 level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
 还有一个特俗值INHERITED或者同义词NULL,代表强制执行上级的级别。
 如果未设置此属性,那么当前logger将会继承上级的级别。
 addtivity:是否向上级logger传递打印信息。默认是true。
 -->
 <!--<logger name="org.springframework.WEB" level="info"/>-->
 <!--<logger name="org.springframework.scheduling.annotation.ScheduledAnnotationBeanPostProcessor" level="INFO"/>-->
 <!--
 使用mybatis的时候,sql语句是debug下才会打印,而这里我们只配置了info,所以想要查看sql语句的话,有以下两种操作:
 第一种把<root level="info">改成<root level="DEBUG">这样就会打印sql,不过这样日志那边会出现很多其他消息
 第二种就是单独给dao下目录配置debug模式,代码如下,这样配置sql语句会打印,其他还是正常info级别:
 -->
  
 <!--
 root节点是必选节点,用来指定最基础的日志输出级别,只有一个level属性
 level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
 不能设置为INHERITED或者同义词NULL。默认是DEBUG
 可以包含零个或多个元素,标识这个appender将会添加到这个logger。
 -->
 
 <!--开发环境:打印控制台-->
 <logger name="cn.zszhan.forum" level="debug"/>
 <root level="info">
 <appender-ref ref="CONSOLE" />
 <appender-ref ref="DEBUG_FILE" />
 <appender-ref ref="INFO_FILE" />
 <appender-ref ref="WARN_FILE" />
 <appender-ref ref="ERROR_FILE" />
 </root>
 
 <!--生产环境:输出到文件-->
 <!--<springProfile name="pro">-->
 <!--<root level="info">-->
 <!--<appender-ref ref="CONSOLE" />-->
 <!--<appender-ref ref="DEBUG_FILE" />-->
 <!--<appender-ref ref="INFO_FILE" />-->
 <!--<appender-ref ref="ERROR_FILE" />-->
 <!--<appender-ref ref="WARN_FILE" />-->
 <!--</root>-->
 <!--</springProfile>-->
 
</configuration>

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: Spring Boot console log 格式自定义方式

本文链接: https://lsjlt.com/news/131144.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Spring Boot console log 格式自定义方式
    Spring Boot console log 格式自定义 Spring Boot 默认使用Logback 新增配置项:logging.pattern.console loggi...
    99+
    2024-04-02
  • Spring Boot 注解方式自定义Endpoint详解
    目录概述准备编写自定义Endpoint配置启动&测试注意Spring Boot 常用endpoint的使用Actuator一些常用 Endpoint如何访问 Actuator...
    99+
    2024-04-02
  • Spring Boot集成redis,key自定义生成方式
    一)自定义redis key生成策略 @Configuration:表示当前类属于一个配置类,类似于一个spring.cfg.xml。 @EnableCaching:表示支持启用缓存...
    99+
    2024-04-02
  • spring boot之使用spring data jpa的自定义sql方式
    目录spring data jpa介绍自定义SQL查询jpa两种自定义SQL的方式1. 原生SQL2. 实体类SQLspring data jpa介绍 PA(Java Persist...
    99+
    2024-04-02
  • Spring Boot之Validation自定义实现方式的总结
    目录Validation自定义实现方式Spring Boot Validation定制使用自定义的注解自定义执行Validator自定义Validation注解场景说明源码总结Val...
    99+
    2024-04-02
  • spring-session自定义序列化方式
    目录spring-session自定义序列化自定义序列方法使用jackson库配置spring-session序列化spring-session序列化问题排查问题解决方法spring...
    99+
    2024-04-02
  • Spring Cloud OAuth2实现自定义token返回格式
    目录问题描述解决方案总结最近读者朋友针对Spring Security OAuth2.0 想要陈某补充一些知识,如下: 今天这篇文章就来回答其中一个问题:如何自定义token的返回...
    99+
    2024-04-02
  • Spring Boot如何自定义starter
    这篇文章主要介绍Spring Boot如何自定义starter,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、简介SpringBoot 最强大的功能就是把我们常用的场景抽取成了一个个starter(场景启动器),我...
    99+
    2023-06-02
  • DataGrip 格式化SQL的实现方法(自定义Sql格式化)
    工欲善其事,必先利其器。好的工具可以使使用者心情舒畅,效率加倍。DataGrip 是 JetBrains 发布的多引擎数据库环境,支持 MySQL 和 PostgreSQL,Micr...
    99+
    2024-04-02
  • Spring Boot之Validation自定义实现的方法
    这篇“Spring Boot之Validation自定义实现的方法”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“S...
    99+
    2023-07-02
  • Spring Cloud OAuth2怎么实现自定义token返回格式
    这篇“Spring Cloud OAuth2怎么实现自定义token返回格式”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我...
    99+
    2023-07-02
  • Spring boot 自定义 Starter及自动配置的方法
    目录Starter 组件简介自定义 Starter 组件Starter 组件使用 StarterStarter 传参自身与第三方维护Starter 组件简介 Starter 组件是 ...
    99+
    2022-12-08
    Spring boot 自定义 Starter Spring boot自动配置
  • 怎么使用spring data jpa自定义sql方式
    本篇内容介绍了“怎么使用spring data jpa自定义sql方式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!sp...
    99+
    2023-06-22
  • log4j日志格式加入自定义字段信息方式
    目录log4j日志格式加入自定义字段信息log4j2入库自定义字段类型官方API文档中只提供了几个属性设置isNumber=“true”log4j日志格式加入自定义字段信息 在使用l...
    99+
    2024-04-02
  • RestTemplate自定义ErrorHandler方式
    目录RestTemplate自定义ErrorHandlerRestTemplate实例三个步骤:SpringBoot 中使用 RestTemplate 自定义 异常处理,捕获最原始的...
    99+
    2024-04-02
  • spring data jpa 查询自定义字段,转换为自定义实体方式
    目标:查询数据库中的字段,然后转换成 JSON 格式的数据,返回前台。 环境:idea 2016.3.4, jdk 1.8, mysql 5.6, spring-boot 1.5.2...
    99+
    2024-04-02
  • Spring Boot之FilterRegistrationBean-自定义Filter详解
    Spring Boot之FilterRegistrationBean-自定义Filter 项目老的用spring写的,新的升级到了springboot,原代码中有在web.xml中定...
    99+
    2024-04-02
  • spring boot装载自定义yml文件
    yml格式的配置文件感觉很人性化,所以想把项目中的.properties都替换成.yml文件,主要springboot自1.5以后就把@configurationProperties中的location参数去掉,各种查询之后发现可以用Yam...
    99+
    2023-05-31
    spring boot yml
  • Android Mars XLog 自定义存储格式
    经过前两篇文章 Android 微信高性能日志存储库Xlog的使用 Android Mars XLog的编译 我们大概了解了XLog,但是微信开...
    99+
    2022-06-06
    自定义 存储 Android
  • 怎么自定义angular-datetime-picker格式
    今天小编给大家分享一下怎么自定义angular-datetime-picker格式的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作