ogback对比log4j的有点在此就不赘述了。
由于在项目的原有代码中,大量的日志生成是通过log4j实现的,新的代码希望通过logback的方式生成日志,同时希望将老的代码在不修改的情况下直接将日志生成至logback指定配置中。
log4j迁移到logback 此文中介绍了一种迁移方式,但是需要修改代码,此种迁移风险太高。
《slf4j官方文档》传统桥接API 一文中介绍了使用log4j-over-slf4j.jar替代log4j.jar,通过桥接的方式将原有的日志生成至logback配置中。
log4j-over-slf4j.jar下载地址:Log4j Implemented Over SLF4J , Maven中央仓库信息速查
老的使用log4j生成日志代码
package com.spike.test; import java.io.IOException; import java.sql.SQLException; import org.apache.log4j.Logger; public class Log4jExample { static Logger log = Logger.getLogger(Log4jExample.class.getName()); public static void main(String[] args)throws IOException,SQLException{ log.debug("Debug"); log.info("Info"); log.error("error"); System.out.println(Log4jExample.class.getName()+" test"); } }
将log4j-over-slf4j.jar导入至项目,排除log4j.jar,配置好使用logback需要的环境,日志生成至logback.xml配置指定的文件中
2016-11-03 14:14:31,799 [DEBUG] [main] com.spike.test.Log4jExample [LogbackExample.java : 18] Debug 2016-11-03 14:14:31,803 [INFO] [main] com.spike.test.Log4jExample [LogbackExample.java : 19] Info 2016-11-03 14:14:31,803 [ERROR] [main] com.spike.test.Log4jExample [LogbackExample.java : 20] error com.spike.test.Log4jExample test
至此,在不改变代码的条件下迁移至logback成功。
但是发现一个小的问题,就是例如继承了HTMLLayout,Layout的类无法工作了。
参考:
分类:
Java
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· Apache Tomcat RCE漏洞复现(CVE-2025-24813)