当前位置: 首页 > news >正文

日志文件爆满_配置使用logback_只保留3天日志文件_每天定时生成一个日志文件---SpringCloud工作笔记206

    日志文件爆满,springCloud微服务架构中的,日志爆满如何解决,使用脚本直接删除,会导致,

如果要删除的日志文件,还正在被进程占用,那么你即使使用脚本定时删除了,这个日志文件,那么这个日志文件实际上还是不会删除的,他的大小,依然占用磁盘,就是因为,有进程还在占用它,所以之前说的,日志文件爆满,使用脚本定时删除,是不可用的.

   要想解决这个问题,最好直接在微服务的服务中,进行配置,比如:

这里我们使用logback来管理日志文件:比如有个微服务的名字叫:xxx-bigdata-platform-system

那么,这个时候,在这个项目的E:\bigData\RuoYi-Cloud-Plus-master\ruoyi-modules\xxx-bigdata-platform-system\src\main\resources\logback-spring.xml

这个配置文件中可以这样写:

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
    <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">
        <!--过滤trace日志到控制台-->
        <filter class="com.plumelog.logback.util.FilterSyncLogger">
            <level></level>
        </filter>
        <encoder>
            <Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
            <!-- 设置字符集 -->
            <charset>UTF-8</charset>
        </encoder>
    </appender>
    <!-- 输出到文件 -->
    <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>logs/nohup_xxx-bigdata-platform-system.log.%d{yyyy-MM-dd}.log</FileNamePattern>
            <MaxHistory>3</MaxHistory>
        </rollingPolicy>
        <encoder>
            <Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
            <!-- 设置字符集 -->
            <charset>UTF-8</charset>
        </encoder>
    </appender>
    <!-- 环境配置 -->
    <springProperty scope="context" name="plumelog.appName" source="plumelog.appName"/>
    <springProperty scope="context" name="plumelog.redisHost" source="plumelog.redisHost"/>
    <springProperty scope="context" name="plumelog.redisPort" source="plumelog.redisPort"/>
    <springProperty scope="context" name="plumelog.redisAuth" source="plumelog.redisAuth"/>
    <springProperty scope="context" name="plumelog.env" source="spring.profiles.active"/>
    <!-- 输出plumelog -->
    <appender name="plumelog" class="com.plumelog.logback.appender.RedisAppender">
        <appName>${plumelog.appName}</appName>
        <redisHost>${plumelog.redisHost}</redisHost>
        <redisAuth>${plumelog.redisAuth}</redisAuth>
        <env>${plumelog.env}</env>
    </appender>
    <!-- 配置日志输出,只输出info,只保留控制台和plumelog输出-->
    <!-- 正常开发环境本地,只输出到控制台,测试环境只输出到plumelog,生产环境输出到本地文件plumelog,因为有plumelog加持本地文件就保留3天即可-->
    <!-- 这些都可以根据环境配置不同加载不同的ref-->
    <root level="info">
        <!--输出到控制台-->
    <appender-ref ref="CONSOLE"/>
    <!-- 输出到文件 -->
    <appender-ref ref="file"/>
    <!-- 输出plumelog -->
    <appender-ref ref="plumelog"/>
    </root>

</configuration>

这个文件可以复制过去直接使用.

可以看到上面配置的就是,只保留3天的日志,并且,每天生成一个日志文件

logs/nohup_xxx-bigdata-platform-system.log.%d{yyyy-MM-dd}.log

这里yyyy-MM-dd就相当于指定了,每天生成一个日志文件

可以看到就正常生产文件了已经. 

然后,pom.xml中需要引入:

  <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
        </dependency>

引入以后,还有个地方需要,在配置文件中添加配置,这个一般是,在nacos中,对应微服务的

配置:

# 日志配置
logging:
  level:
    org.springframework: warn
    org.apache.dubbo: warn
    com.alibaba.nacos: warn
  config: classpath:logback-spring.xml

相关文章:

  • 如何制定有效的风险应对计划
  • C++ std::string_view介绍及性能提升分析
  • android面试情景题详解:android如何处理断网、网络切换或低速网络情况下的业务连续性
  • 关于SENSOR 720P/1080P 静电保护方案
  • Python静态方法和类方法详解
  • 在断网的时候,websocket 一直在CLOSING 状态
  • 如何制定合理的项目预算
  • Docker详细使用
  • Windows 系统如何使用Redis 服务
  • 什么是分布式声波传感
  • 性能炸裂的数据可视化分析工具:DataEase!
  • npm 常用命令及示例和解析
  • 位运算题目:连接连续二进制数字
  • python asyncio 的基本使用
  • HTTP 和 HTTPS 协议的区别及使用场景
  • Java微服务流量控制与保护技术全解析:负载均衡、线程隔离与三大限流算法
  • vue3 div 点击右键旁边出现弹窗 可做编辑删除 新增操作
  • 案例-索引对于并发Insert性能优化测试
  • 初阶数据结构--二叉树OJ训练
  • 渗透测试学习-概述
  • 人民日报评“我愿意跟他挨着”:城市要善待奋斗者,惩治作恶者
  • 世界读书日|全城书香,上海“全民阅读”正在进行时
  • 又有多地推进产科整合
  • 山西一国道发生塌陷,造成4车追尾2人死亡
  • 寻找“香奈儿”代工厂
  • 五一假期出行预订进入高潮:酒店搜索热度翻倍,“请4休11”拼假带动长线游