首页 > 其他分享 >SpringBoot配置日志文件定期切割

SpringBoot配置日志文件定期切割

时间:2023-04-27 17:14:45浏览次数:60  
标签:%- -% SpringBoot MM dd yyyy ss 日志 切割

下面是我的配置:

创建 logback-spring.xml 写入下面的配置

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
    <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径 -->
    <property name="LOG_HOME" value="./logs" />
    <property name="AppName" value="nav" />
    <!-- 控制台输出 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
            <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %magenta(%-5level) %green([%-50.50class]) >>> %cyan(%msg) %n</pattern>
        </layout>
    </appender>
    <!-- 输出日志到文件中 -->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 指定日志名称(可以不指定) -->
        <file>${LOG_HOME}/nohup.out</file>
        <!--不输出ERROR级别的日志-->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>DENY</onMatch>
            <onMismatch>ACCEPT</onMismatch>
        </filter>
        <!-- 设置按尺寸和时间(同时满足)分割 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!-- rollover daily -->
            <fileNamePattern>${LOG_HOME}/info/%d{yyyy-MM-dd}-%i-info.log</fileNamePattern>
            <!--单个日志文件最大值-->
            <maxFileSize>10MB</maxFileSize>
            <!--日志保留天数-->
            <maxHistory>30</maxHistory>
            <!--日志文件总体的最大值-->
            <totalSizeCap>1GB</totalSizeCap>
        </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}-%msg%n</pattern>
        </encoder>
    </appender>
    <!-- 输出错误日志到文件中 -->
    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--只输出ERROR级别的日志-->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
        <!-- 设置按尺寸和时间(同时满足)分割 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!-- rollover daily -->
            <fileNamePattern>${LOG_HOME}/error/%d{yyyy-MM-dd}-%i-error.log</fileNamePattern>
            <!--单个日志文件最大值-->
            <maxFileSize>10MB</maxFileSize>
            <!--日志保留天数-->
            <maxHistory>30</maxHistory>
            <!--日志文件总体的最大值-->
            <totalSizeCap>1GB</totalSizeCap>
        </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}-%msg%n</pattern>
        </encoder>
    </appender>
    <!-- 日志输出级别 -->
    <root level="INFO">
        <appender-ref ref="STDOUT" />
        <appender-ref ref="FILE" />
        <appender-ref ref="ERROR_FILE" />
    </root>
</configuration>

然后你运行完你的项目之后,会发现项目的同级目录下出现了一个logs文件夹,这里里面记录了你的项目运行时候的日志,按大小和时间分割。

参考: http://www.manongjc.com/detail/63-jbxvojxbazdsvnp.html

标签:%-,-%,SpringBoot,MM,dd,yyyy,ss,日志,切割
From: https://www.cnblogs.com/linyufeng/p/17359442.html

相关文章

  • Kivy中的Logger组件用于记录应用程序的日志信息
    name:可选参数,指定Logger组件的名称。默认为root。level:可选参数,指定Logger组件的记录级别。默认为debug。propagate:可选参数,指定是否向父Logger组件传递记录消息。默认为True。handlers:可选参数,指定Logger组件的处理程序。默认为None。disabled:可......
  • 隧道全幅表观产品开发日志(一)旧版软件的修改日志
    好久没写博客了,上一次写还是在上一家公司现在在的这家公司目前做的是隧道内的探伤项目,我现在主要的工作是做工控机,也就是控制各种硬件组织作业。目前的产品架构见https://github.com/LeventureQys/South_Gathering_Doc中多设备采集软件相关内容,这篇文章仅是记录旧版软件的修改......
  • springboot入门时,发现Java版本与Spring boot版本无法对应导致错误的问题解决
    <?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/......
  • SpringBoot SpringSecurity 介绍(基于内存的验证)
    SpringBoot集成SpringSecurity+MySQL+JWT附源码,废话不多直接盘SpringBoot已经为用户采用默认配置,只需要引入pom依赖就能快速启动SpringSecurity。目的:验证请求用户的身份,提供安全访问优势:基于Spring,配置方便,减少大量代码内置访问控制方法permitAll()表示所匹配的......
  • SpringBoot 集成 SpringSecurity + MySQL + JWT 附源码,废话不多直接盘
    SpringBoot集成SpringSecurity+MySQL+JWT无太多理论,直接盘一般用于Web管理系统可以先看SpringBootSpringSecurity基于内存的使用介绍本文介绍如何整合SpringSecurity+MySQL+JWT数据结构数据库脚本:https://gitee.com/VipSoft/VipBoot/blob/develop/vipsoft-sec......
  • SpringBoot配置MongoDb
    MongoDb建表:MongoDB不需要建表,直接插入数据就会建表。日期用ISODate()转换。db.getCollection("mongoDbTest").insert({userId:"dxcefg",status:1,price:1.23,updateTime:ISODate("2022-02-13T07:06:25.371Z")})添加maven依赖:<dependency>......
  • springboot自定义拦截器
    springboot自定义拦截器操作说明1、编写一个拦截器实现HandlerInterceptor接口2、拦截器注册到容器中(实现WebMvcConfigures的addInterceptors)3、指定拦截规则(如果是拦截所有,静态资源也会被拦截)LoginInterceptor.javapackagecom.example.springtxiangmu.interceptor;im......
  • nginx日志切割
    手动#!/bin/bashLOG_PATH="/var/log/nginx/"RECORD_TIME=$(date-d"yesterday"+%Y-%m-%d+%H:%H:%M)PID=/var/run/nginx/nginx.pidmv${LOG_PATH}/access.log${LOG_PATH}/access.${RECORD_TIME}.logmv${LOG_PATH}/error.log${LOG_PATH}/error.${R......
  • 系统日志管理审核
    系统日志管理系统日志记录协议(syslog)旨在标准化网络设备用于与日志服务器通信的消息格式。网络上的路由器、交换机、防火墙和Unix/Linux服务器等许多设备都支持它,从而更轻松地管理这些设备生成的日志。系统日志监控和管理对于每个组织减少系统停机时间、提高网络性能和加强企业......
  • SpringBoot2 hikari关于 Failed to validate connection com.mysql.cj.jdbc.Connectio
    项目启动不报错,如果静默15分钟没有数据库操作就报上述错误WARN不影响程序运行Failedtovalidateconnectioncom.mysql.cj.jdbc.ConnectionImpl@16244d67(Nooperationsallowedafterconnectionclosed.).PossiblyconsiderusingashortermaxLifetimevalue.发现Spri......