重构日志系统并更新配置

- 更新日志路径和输出格式
- 添加异步日志记录功能
- 优化日志文件滚动策略,增加文件大小限制
- 更新项目启动信息
This commit is contained in:
syruan 2025-09-15 16:29:10 +08:00
parent 8f85d4df1e
commit 68932e1039
6 changed files with 98 additions and 54 deletions

View File

@ -17,13 +17,6 @@
<dependencies>
<!-- 省公司短信平台sms-util -->
<dependency>
<groupId>com.ahsbd</groupId>
<artifactId>sms-util</artifactId>
<version>1.0</version>
</dependency>
<!-- SpringCloud Openfeign -->
<dependency>
<groupId>org.springframework.cloud</groupId>

View File

@ -17,6 +17,13 @@
<dependencies>
<!-- 省公司短信工具包-->
<dependency>
<groupId>com.ah.sbd</groupId>
<artifactId>sms-util</artifactId>
<version>1.0</version>
</dependency>
<!--加密依赖包-->
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
@ -117,6 +124,12 @@
<artifactId>poi-ooxml</artifactId>
<version>5.2.3</version>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.24</version>
<scope>compile</scope>
</dependency>
</dependencies>

View File

@ -23,7 +23,7 @@ public class BonusMaterialMallApplication
public static void main(String[] args)
{
SpringApplication.run(BonusMaterialMallApplication.class, args);
System.out.println("(♥◠‿◠)ノ゙ 2024安徽机械化装备平台启动成功 ლ(´ڡ`ლ)゙ \n" +
System.out.println("(♥◠‿◠)ノ゙ 2024陕西机械化装备平台启动成功 ლ(´ڡ`ლ)゙ \n" +
" .-------. ____ __ \n" +
" | _ _ \\ \\ \\ / / \n" +
" | ( ' ) | \\ _. / ' \n" +

View File

@ -1,10 +1,8 @@
package com.bonus.material.device.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.BooleanUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.PhoneUtil;
import com.alibaba.druid.sql.visitor.functions.If;
import com.bonus.common.biz.constant.MaterialConstants;
import com.bonus.common.biz.domain.*;
import com.bonus.common.biz.enums.HttpCodeEnum;

View File

@ -0,0 +1,30 @@
# Tomcat
server:
port: 18589
# Spring
spring:
cloud:
nacos:
discovery:
# 服务注册地址
server-addr: 14.103.246.124:8848
namespace: material_mall_shanxi
config:
# 配置中心地址
server-addr: 14.103.246.124:8848
namespace: material_mall_shanxi
# 配置文件格式
file-extension: yml
# 共享配置
shared-configs:
- application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
#加密组件
jasypt:
encryptor:
password: Encrypt
mybatis:
configuration:
map-underscore-to-camel-case: true

View File

@ -1,74 +1,84 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<!-- 日志存放路径 -->
<property name="log.path" value="logs/bonus-material-mall" />
<!-- 日志路径 -->
<property name="LOG_PATH" value="logs/bonus-material-mall" />
<!-- 日志输出格式 -->
<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
<property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
<!-- 控制台输出 -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<!-- 控制台输出(彩色高亮) -->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${log.pattern}</pattern>
<pattern>%d{HH:mm:ss.SSS} [%thread] %highlight(%-5level) %cyan(%logger{20}) - [%method,%line] - %msg%n</pattern>
</encoder>
</appender>
<!-- 系统日志输出 -->
<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/info.log</file>
<!-- 循环政策:基于时间创建日志文件 -->
<!-- Info 日志文件 -->
<appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_PATH}/info.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志文件名格式 -->
<fileNamePattern>${log.path}/info.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 日志最大的历史 60天 -->
<fileNamePattern>${LOG_PATH}/info.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<maxHistory>60</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern>
<pattern>${LOG_PATTERN}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 过滤的级别 -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
<!-- 匹配时的操作:接收(记录) -->
<onMatch>ACCEPT</onMatch>
<!-- 不匹配时的操作:拒绝(不记录) -->
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/error.log</file>
<!-- 循环政策:基于时间创建日志文件 -->
<!-- Error 日志文件 -->
<appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_PATH}/error.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志文件名格式 -->
<fileNamePattern>${log.path}/error.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 日志最大的历史 60天 -->
<fileNamePattern>${LOG_PATH}/error.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<maxHistory>60</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern>
<pattern>${LOG_PATTERN}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 过滤的级别 -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
<!-- 匹配时的操作:接收(记录) -->
<onMatch>ACCEPT</onMatch>
<!-- 不匹配时的操作:拒绝(不记录) -->
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 系统模块日志级别控制 -->
<logger name="com.bonus.material" level="debug" />
<!-- Spring日志级别控制 -->
<logger name="org.springframework" level="warn" />
<!-- 异步包装 -->
<appender name="ASYNC_INFO" class="ch.qos.logback.classic.AsyncAppender">
<!-- 队列大小(可调大,比如 5000~10000 -->
<queueSize>5000</queueSize>
<!-- 丢弃阈值(队列满时,丢弃低于 INFO 的日志ERROR 永远不丢) -->
<discardingThreshold>0</discardingThreshold>
<appender-ref ref="INFO_FILE" />
</appender>
<root level="info">
<appender-ref ref="console" />
<appender name="ASYNC_ERROR" class="ch.qos.logback.classic.AsyncAppender">
<queueSize>2000</queueSize>
<!-- 确保 ERROR 不丢 -->
<discardingThreshold>0</discardingThreshold>
<!-- neverBlock=true 时即使队列满也不会阻塞,但可能丢日志;这里建议保持 false -->
<neverBlock>false</neverBlock>
<appender-ref ref="ERROR_FILE" />
</appender>
<!-- 自定义包日志级别 -->
<logger name="com.bonus.material" level="DEBUG" />
<!-- Spring 日志控制 -->
<logger name="org.springframework" level="WARN" />
<!-- 根日志配置 -->
<root level="INFO">
<appender-ref ref="CONSOLE" />
<appender-ref ref="ASYNC_INFO" />
<appender-ref ref="ASYNC_ERROR" />
</root>
<!--系统操作日志-->
<root level="info">
<appender-ref ref="file_info" />
<appender-ref ref="file_error" />
</root>
</configuration>