在Java里如何配置日志库_Java开发环境常用工具说明
发布时间 - 2026-01-28 00:00:00 点击率:次Log4j2 配置需放 src/main/resources/log4j2.xml,Maven 中排除 Log4j1 并引入 log4j-api 和 log4j-core;SLF4J+Logback 需避免绑定冲突,仅保留 slf4j-api 和 logback-classic;Logback 滚动策略应配置 SizeAndTimeBasedRollingPolicy 并设 maxHistory 与 totalSizeCap;生产日志失效多因 profile 未激活、权限不足或配置路径错误。
Log4j2 依赖和配置文件怎么放才生效
Log4j2 默认只认 classpath:log4j2.xml 或 classpath:log4j2.json,不识别 log4j.properties。如果你用 Maven,必须在 pom.xml 中明确排除旧版 Log4j1(避免类冲突),再引入 Log4j2:
org.apache.logging.log4j log4j-core2.20.0 org.apache.logging.log4j log4j-api 2.20.0
配置文件要放在 src/main/resources/log4j2.xml,否则启动时会打印警告:ERROR StatusLogger No log4j2 configuration file found。常见错误包括:文件名拼错、放在 src/main/java 下、或被 IDE 忽略未复制到 target/classes。
SLF4J + Logback 组合下如何避免桥接冲突
SLF4J 是门面,Logback 是原生实现,但项目里如果同时存在 slf4j-log4j12.jar 和 logback-classic.jar,运行时会报错:Failed to load class "org.slf4j.impl.StaticLoggerBinder" 或出现双输出。必须确保:
- 只保留
logback-classic和slf4j-api两个核心依赖 - 用
slf4j-simple或slf4j-jdk14等其他绑定时,必须彻底排除logback-classic - Spring Boot 2.7+ 默认用 Logback,但若手动加了
log4j2-spring.xml,需在application.properties中设logging.config=classpath:logback-spring.xml显式指定
检查依赖树用:mvn dependency:tree | grep slf4j,确认没有重复绑定。
日志输出路径和滚动策略在 logback-spring.xml 中怎么写
Spring Boot 推荐用 logback-spring.xml(支持 Spring Profile),而不是 logback.xml。关键点:
-
:支持环境变量回退,默认当前目录下logs/ - 按天归档要配
,只用时间策略会丢日志 - 避免磁盘打满:加上
和30 1GB
示例片段:
${LOG_PATH}/app.log ${LOG_PATH}/app.%d{yyyy-MM-dd}.%i.log 100MB 30 1GB
为什么本地能打印日志,上生产就没了
大概率是日志级别或 profile 不匹配。Spring Boot 启动时会加载 logback-spring.xml 中的 块,但如果你没激活 prod,它就完全不生效。检查点:
- 启动命令是否带
--spring.profiles.active=prod -
application-prod.yml里有没有覆盖logging.level.root=INFO(默认是INFO,但可能被设成WARN) - 容器中
/logs目录是否存在且进程有写权限(Linux 下常因 SELinux 或挂载权限失败静默丢日志) - JVM 参数是否含
-Dlogback.configurationFile=/path/to/logback.xml,优先级高
于 classpath
最稳妥的调试方式:加一行 System.setProperty("logback.debug", "true"); 在 main 方法开头,看控制台输出实际加载了哪个配置文件。
# linux
# java
# js
# json
# apache
# app
# 工具
# ai
# 环境变量
# 配置文件
# 开发环境
# java开发
# yy
# spring
# spring boot
# logback
# maven
# jvm
# log4j
# xml
# Error
# Logging
# class
# Property
# ide
# 放在
# 绑定
# 加载
# 你没
# 报错
# 它就
# 你用
# 是否存在
# 旧版
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
微信小程序 canvas开发实例及注意事项
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
Laravel如何使用Telescope进行调试?(安装和使用教程)
html5的keygen标签为什么废弃_替代方案说明【解答】
Laravel怎么做数据加密_Laravel内置Crypt门面的加密与解密功能
如何在Windows 2008云服务器安全搭建网站?
中国移动官方网站首页入口 中国移动官网网页登录
Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】
美食网站链接制作教程视频,哪个教做美食的网站比较专业点?
Laravel中间件如何使用_Laravel自定义中间件实现权限控制
Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案
bootstrap日历插件datetimepicker使用方法
iOS发送验证码倒计时应用
HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】
Laravel如何记录自定义日志?(Log频道配置)
C#如何调用原生C++ COM对象详解
php打包exe后无法访问网络共享_共享权限设置方法【教程】
如何快速完成中国万网建站详细流程?
详解jQuery中基本的动画方法
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
java中使用zxing批量生成二维码立牌
php做exe能调用系统命令吗_执行cmd指令实现方式【详解】
Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用
如何用花生壳三步快速搭建专属网站?
电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?
HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】
如何用wdcp快速搭建高效网站?
Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置
手机网站制作与建设方案,手机网站如何建设?
Laravel如何实现本地化和多语言支持?(i18n教程)
Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】
Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】
如何在七牛云存储上搭建网站并设置自定义域名?
logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?
如何在 React 中条件性地遍历数组并渲染元素
HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】
Laravel的路由模型绑定怎么用_Laravel Route Model Binding简化控制器逻辑
如何在IIS服务器上快速部署高效网站?
如何在企业微信快速生成手机电脑官网?
Python函数文档自动校验_规范解析【教程】
微信推文制作网站有哪些,怎么做微信推文,急?
java获取注册ip实例
HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】
Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】
Laravel如何升级到最新版本?(升级指南和步骤)
DeepSeek是免费使用的吗 DeepSeek收费模式与Pro版本功能详解
PythonWeb开发入门教程_Flask快速构建Web应用
php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?


