Springboot按天生成日志文件

news/2024/11/15 12:56:31/文章来源:https://www.cnblogs.com/fswhq/p/18057145

原文链接:https://blog.csdn.net/weixin_47798667/article/details/131846942

 1:首先再yml文件上加上配置

  1.  
    logging:
  2.  
    config: classpath:logback-spring.xml

2:新建一个logback-spring.xml文件

 文件内容是如下

  1.  
    <?xml version="1.0" encoding="UTF-8"?>
  2.  
    <configuration>
  3.  
    <property name="LOG_CONTEXT_NAME" value="log"/>
  4.  
    <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
  5.  
    <property name="LOG_HOME" value="logs/${LOG_CONTEXT_NAME}" />
  6.  
    <!-- 定义日志上下文的名称 -->
  7.  
    <contextName>${LOG_CONTEXT_NAME}</contextName>
  8.  
    <!-- 控制台输出 -->
  9.  
    <!--<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
  10.  
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  11.  
    &lt;!&ndash;格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符&ndash;&gt;
  12.  
    <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %highlight(%-5level) %cyan(%logger{50}:%L) - %msg%n</pattern>
  13.  
    <charset>utf-8</charset>
  14.  
    </encoder>
  15.  
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
  16.  
    <level>INFO</level>
  17.  
    </filter>
  18.  
    </appender>-->
  19.  
     
  20.  
     
  21.  
    <!-- 彩色日志依赖的渲染类 -->
  22.  
    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
  23.  
    <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
  24.  
    <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
  25.  
    <!-- 彩色日志格式 -->
  26.  
    <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}}"/>
  27.  
     
  28.  
    <!--1. 输出到控制台-->
  29.  
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
  30.  
    <!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
  31.  
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
  32.  
    <level>INFO</level>
  33.  
    </filter>
  34.  
    <encoder>
  35.  
    <Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
  36.  
    <!-- 设置字符集 -->
  37.  
    <charset>UTF-8</charset>
  38.  
    </encoder>
  39.  
    </appender>
  40.  
     
  41.  
    <!--info日志统一输出到这里-->
  42.  
    <appender name="file.info" class="ch.qos.logback.core.rolling.RollingFileAppender">
  43.  
    <Prudent>true</Prudent>
  44.  
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  45.  
    <!--日志文件输出的文件名,按小时生成-->
  46.  
    <FileNamePattern>${LOG_HOME}/%d{yyyy-MM-dd}/info/info.%d{yyyy-MM-dd-HH}.%i.log</FileNamePattern>
  47.  
    <!--日志文件保留天数-->
  48.  
    <MaxHistory>30</MaxHistory>
  49.  
    <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  50.  
    <!-- 除按日志记录之外,还配置了日志文件不能超过10M(默认),若超过10M,日志文件会以索引0开始, -->
  51.  
    <maxFileSize>10MB</maxFileSize>
  52.  
    </timeBasedFileNamingAndTriggeringPolicy>
  53.  
    </rollingPolicy>
  54.  
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  55.  
    <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %method 方法名 %L 行数 %msg:日志消息,%n是换行符-->
  56.  
    <pattern> %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{56}.%method:%L - %msg%n</pattern>
  57.  
    <charset>utf-8</charset>
  58.  
    </encoder>
  59.  
    <!-- 此日志文件只记录info级别的 -->
  60.  
    <filter class="ch.qos.logback.classic.filter.LevelFilter">
  61.  
    <level>INFO</level>
  62.  
    <onMatch>ACCEPT</onMatch>
  63.  
    <onMismatch>DENY</onMismatch>
  64.  
    </filter>
  65.  
    </appender>
  66.  
     
  67.  
     
  68.  
    <!--错误日志统一输出到这里-->
  69.  
    <appender name="file.error" class="ch.qos.logback.core.rolling.RollingFileAppender">
  70.  
    <Prudent>true</Prudent>
  71.  
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  72.  
    <!--日志文件输出的文件名,按天生成-->
  73.  
    <FileNamePattern>${LOG_HOME}/%d{yyyy-MM-dd}/error/error.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
  74.  
    <!--日志文件保留天数-->
  75.  
    <MaxHistory>30</MaxHistory>
  76.  
    <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  77.  
    <!-- 除按日志记录之外,还配置了日志文件不能超过10M(默认),若超过10M,日志文件会以索引0开始, -->
  78.  
    <maxFileSize>10MB</maxFileSize>
  79.  
    </timeBasedFileNamingAndTriggeringPolicy>
  80.  
    </rollingPolicy>
  81.  
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  82.  
    <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %method 方法名 %L 行数 %msg:日志消息,%n是换行符-->
  83.  
    <pattern> %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{56}.%method:%L - %msg%n</pattern>
  84.  
    <charset>utf-8</charset>
  85.  
    </encoder>
  86.  
    <!-- 此日志文件只记录error级别的 -->
  87.  
    <filter class="ch.qos.logback.classic.filter.LevelFilter">
  88.  
    <level>ERROR</level>
  89.  
    <onMatch>ACCEPT</onMatch>
  90.  
    <onMismatch>DENY</onMismatch>
  91.  
    </filter>
  92.  
    </appender>
  93.  
     
  94.  
    <!--warn日志统一输出到这里-->
  95.  
    <appender name="file.warn" class="ch.qos.logback.core.rolling.RollingFileAppender">
  96.  
    <Prudent>true</Prudent>
  97.  
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  98.  
    <FileNamePattern>${LOG_HOME}/%d{yyyy-MM-dd}/warn/warn.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
  99.  
    <!--日志文件保留天数-->
  100.  
    <MaxHistory>30</MaxHistory>
  101.  
    <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  102.  
    <!-- 除按日志记录之外,还配置了日志文件不能超过10M(默认),若超过10M,日志文件会以索引0开始, -->
  103.  
    <maxFileSize>10MB</maxFileSize>
  104.  
    </timeBasedFileNamingAndTriggeringPolicy>
  105.  
    </rollingPolicy>
  106.  
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  107.  
    <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %method 方法名 %L 行数 %msg:日志消息,%n是换行符-->
  108.  
    <pattern> %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{56}.%method:%L - %msg%n</pattern>
  109.  
    <charset>utf-8</charset>
  110.  
    </encoder>
  111.  
    <!-- 此日志文件只记录warn级别的 -->
  112.  
    <filter class="ch.qos.logback.classic.filter.LevelFilter">
  113.  
    <level>WARN</level>
  114.  
    <onMatch>ACCEPT</onMatch>
  115.  
    <onMismatch>DENY</onMismatch>
  116.  
    </filter>
  117.  
    </appender>
  118.  
     
  119.  
     
  120.  
     
  121.  
    <!-- 日志输出级别 -->
  122.  
    <root level="DEBUG">
  123.  
    <appender-ref ref="STDOUT" />
  124.  
    <appender-ref ref="file.error" />
  125.  
    <appender-ref ref="file.info" />
  126.  
    <appender-ref ref="file.warn" />
  127.  
    </root>
  128.  
     
  129.  
    </configuration>

3:生成的日志文件如下

4:测试info 和error

 

 此时日志文件会保存错误打印的日志了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/742611.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AIGC来了,你的版权还安全吗?

人工智能生成内容(AIGC)是热度居高不下,据Gartner预计,到2025年,AIGC将占全球所有生成数据的10%,以ChatGPT、Stable Diffusion为代表的现象级应用受到强势追捧,AIGC毫无疑问是强有力的生产工具,那如果人类作为创作者被工具抄袭时能够有效反击吗?无法确权和版权争议将是…

音乐相关api

网易云飙升榜 {"sourceUrl": "https://api.vvhan.com/api/wyMusic/飙升榜?type=json","command": "网易云飙升榜","dataType": "json","sendType": "audio","jsonKey": "inf…

显卡欺骗器、锁屏宝的代替品,ToDesk虚拟屏功能完美解决

主机没有显示器?远控电脑需要保持屏幕的高分辨率,但过高容易黑屏? 遇到以上情况,人们常常会使用显卡欺骗器或者锁屏宝来解决,就是让显卡认为连接了一个显示器,方便正常使用电脑。 但是这往往需要额外给电脑上插入设备,如果是突然急用就很难实现了,有没有人帮忙装显卡欺…

ToDesk云电脑进军游戏市场,真显卡高性能,新版本可暂停使用时长!

ToDesk远程控制软件在装机量突破1.5亿后,再度迎来里程碑式的发展。今年,该公司创新推出了云电脑产品,正式涉足云计算领域。这款前沿产品一经发布,便凭借其卓越的性能和使用体验赢得了广大用户的赞誉。近期,ToDesk云电脑更是迎来了重大版本更新,进一步巩固了其在云计算行业…

FastQC使用记录

1.FastQC的下载,安装 https://www.bioinformatics.babraham.ac.uk/projects/download.html#fastqc 在这里下ZIP包,这个是已经编译过的,打开设好路径就能用。 注意:FastQC使用之前记得安装好Java Development Kit (JDK),没有这个没有办法工作,会报错。 https://blog.csdn.…

protobuf-net.Grpc 笔记

众所周知,Grpc很好用,但每次都需要手动编写 *.proto 文件,protobuf-net.Grpc个人感觉最大的优势是不用写*.proto 文件,相关教程如下: https://learn.microsoft.com/zh-cn/aspnet/core/grpc/code-first?view=aspnetcore-8.0 https://protobuf-net.github.io/protobuf-net.…

keycloak~使用自定义的注册页

添加FormAction的实现 package org.keycloak.phone.authentication.forms;import org.keycloak.Config; import org.keycloak.authentication.FormAction; import org.keycloak.authentication.FormActionFactory; import org.keycloak.authentication.FormContext; import org…

1.1_3_2 三种交换的性能分析

一、电路交换性能分析电路交换主要分为三个部分——连接建立、数据传输、连接释放,电路交换的时间消耗包括:连接建立时间:在通信开始之前必须要在发送方和接收方之间建立一条专用的通信路径,这个过程中电路交换机建立、释放和接收方处理连接请求、返回应答信号都需要时间。…

NAT网络与内网穿透原理

Markdown Example.centered-text { text-align: center; font-size: 40px; font-family: "Times New Roman", Georgia, serif }NAT 网络地址转换#NAT 网络地址转换原理: 网络地址转换 (NAT) 是一种在数据包通过路由设备传输时,通过修改数据包 IP 报头中的网络地址信…

ThreadPoolExector

Java Thread Pool 使用线程池的好处:减少资源的浪费:创建、销毁、切换线程需要消耗系统资源,通过使用线程池可以降低消耗。 增加可管理度:通过线程池的同一管理,能够实现线程的更好的管理。 提高相应速度:当任务到来时,无需在创建线程,直接就能对任务进行反馈Java线程池…