在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.xmlclasspath:log4j2.json,不识别 log4j.properties。如果你用 Maven,必须在 pom.xml 中明确排除旧版 Log4j1(避免类冲突),再引入 Log4j2:


  org.apache.logging.log4j
  log4j-core
  2.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.jarlogback-classic.jar,运行时会报错:Failed to load class "org.slf4j.impl.StaticLoggerBinder" 或出现双输出。必须确保:

  • 只保留 logback-classicslf4j-api 两个核心依赖
  • slf4j-simpleslf4j-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/
  • 按天归档要配 ,只用时间策略会丢日志
  • 避免磁盘打满:加上 301GB

示例片段:

  ${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函数问题解决【解答】  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?