flash网站模板中心,邯郸信息港房屋出租,项目建设内容及规模怎么写,转移wordpress一、日志框架选择
1. 主流框架对比
框架特点Spring Boot 默认支持Logback- 性能优异#xff0c;Spring Boot 默认集成- 支持自动热更新配置文件✅ (默认)Log4j2- 异步日志性能更强- 支持插件扩展- 防范漏洞能力更好❌ (需手动配置)JUL (JDK自带)- 无需额外依赖- 功能简单Spring Boot 默认集成- 支持自动热更新配置文件✅ (默认)Log4j2- 异步日志性能更强- 支持插件扩展- 防范漏洞能力更好❌ (需手动配置)JUL (JDK自带)- 无需额外依赖- 功能简单性能较差❌
2. 切换日志框架
切换为 Log4j2
!-- pom.xml 排除默认日志框架 --
dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactIdexclusionsexclusiongroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-logging/artifactId/exclusion/exclusions
/dependency!-- 添加 Log4j2 依赖 --
dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-log4j2/artifactId
/dependency二、日志配置详解
1. 基础配置application.yml
logging:level:root: INFO # 全局日志级别org.springframework: WARNcom.example: DEBUG # 指定包日志级别file:name: logs/app.log # 日志文件路径max-size: 10MB # 单个文件最大尺寸max-history: 30 # 保留最近30天日志pattern:console: %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%nfile: %d %-5level [%thread] %logger{36} - %msg%n2. 高级配置logback-spring.xml
!-- 自定义滚动策略 --
configurationappender nameROLLING classch.qos.logback.core.rolling.RollingFileAppenderfilelogs/app.log/filerollingPolicy classch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicyfileNamePatternlogs/archived/app-%d{yyyy-MM-dd}.%i.log/fileNamePatternmaxFileSize10MB/maxFileSizemaxHistory30/maxHistorytotalSizeCap1GB/totalSizeCap/rollingPolicyencoderpattern%d %level [%thread] %logger{35} - %msg%n/pattern/encoder/appender!-- 按环境激活配置 --springProfile namedevroot levelDEBUGappender-ref refROLLING//root/springProfile
/configuration三、日志级别管理
1. 级别定义
级别使用场景TRACE最细粒度调试信息如方法入参DEBUG开发阶段问题排查如SQL语句、流程状态INFO关键业务流程节点如服务启动、事务提交WARN潜在问题警告如缓存穿透、非核心服务超时ERROR系统错误如数据库连接失败、空指针异常
2. 动态调整
通过 Actuator 实时修改日志级别需先添加依赖
# 查看当前级别
curl http://localhost:8080/actuator/loggers/com.example# 动态修改级别为DEBUG
curl -X POST -H Content-Type: application/json -d {configuredLevel:DEBUG} http://localhost:8080/actuator/loggers/com.example四、日志文件管理策略
1. 滚动策略配置
logging:logback:rollingpolicy:max-file-size: 10MB # 单个文件最大尺寸total-size-cap: 1GB # 所有日志总大小限制clean-history-on-start: true # 启动时清理旧日志2. 日志归档方案
策略优点缺点按时间滚动方便按日期检索日志突发流量可能产生大文件按大小滚动保证单个文件大小可控需要定期清理旧文件混合策略推荐平衡时间与大小管理配置复杂度略高 五、最佳实践
1. 日志规范
// 错误示例模糊的日志信息
log.info(Processing request); // 正确示例结构化日志
log.info(Order processed [orderId{}, status{}], orderId, status);2. 敏感信息过滤
// 使用脱敏工具类
log.debug(User login: username{}, ip{}, SensitiveUtils.maskUsername(username),SensitiveUtils.maskIp(ipAddress));3. 异步日志提升性能
!-- logback-spring.xml 配置异步日志 --
appender nameASYNC classch.qos.logback.classic.AsyncAppenderqueueSize1024/queueSizediscardingThreshold0/discardingThresholdappender-ref refROLLING/
/appender六、常见问题排查
1. 日志不输出
检查 logging.level.root 是否设置过高确认配置文件路径正确默认查找 classpath:logback-spring.xml检查是否有多个日志框架冲突
2. 日志文件不滚动
确认磁盘空间充足检查滚动策略中的 maxFileSize 和 maxHistory 配置确保应用有文件写入权限 通过合理配置日志系统可以实现
生产环境ERROR/WARN 级别日志 滚动归档测试环境INFO 级别日志 异步写入开发环境DEBUG 级别日志 控制台输出
完整示例代码参考Spring Boot Logging Demo