log4j-slf4j 典型用例
一、maven 配置
<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.6</version> </dependency>
二、 log4j 配置
log4j.rootLogger=INFO, console # simple console log log4j.appender.console=org.apache.log4j.ConsoleAppender log4j.appender.console.layout=org.apache.log4j.PatternLayout log4j.appender.console.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}] %p ~ %m%n
## for jul logging log4j.logger.org.zales.dmo.samples.logging=TRACE,julAppender log4j.additivity.org.zales.dmo.samples.logging=false log4j.appender.julAppender=org.apache.log4j.ConsoleAppender log4j.appender.julAppender.layout=org.apache.log4j.PatternLayout log4j.appender.julAppender.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}]--[%t] [%p] -%l - %m%n
## for daily rolling log4j.logger.accesslog=INFO, accessRolling log4j.additivity.accesslog=false log4j.appender.accessRolling=org.apache.log4j.DailyRollingFileAppender log4j.appender.accessRolling.File=logs/access.log log4j.appender.accessRolling.DatePattern='.'yyyy-MM-dd log4j.appender.accessRolling.layout=org.apache.log4j.PatternLayout log4j.appender.accessRolling.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}]--[%t] [%p] -%l - %m%n
## for file size rolling log4j.logger.filemax=INFO, fileMaxRolling log4j.additivity.filemax=false log4j.appender.fileMaxRolling=org.apache.log4j.RollingFileAppender log4j.appenile.fileMaxRolling.Append = true log4j.appenile.fileMaxRolling.MaxFileSize = 5MB log4j.appenile.fileMaxRolling.MaxBackupIndex = 100 log4j.appender.fileMaxRolling.File=logs/filemax.log log4j.appender.fileMaxRolling.layout=org.apache.log4j.PatternLayout log4j.appender.fileMaxRolling.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}]--[%t] [%p] -%l - %m%n
配置说明
-
禁用上溯
log4j.additivity.org.zales.dmo.samples.logging=false -
日志格式
简单输出
log4j.appender.console.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}] %p ~ %m%n
详细输出
log4j.appender.julAppender.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}]–[%t] [%p] -%l - %m%n
3.Pattern说明
-X号: X信息输出时左对齐; %p: 输出日志信息优先级,即DEBUG,INFO,WARN,ERROR,FATAL, %d: 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921 %r: 输出自应用启动到输出该log信息耗费的毫秒数 %c: 输出日志信息所属的类目,通常就是所在类的全名 %t: 输出产生该日志事件的线程名 %l: 输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main (TestLog4.java:10) %x: 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。 %%: 输出一个"%"字符 %F: 输出日志消息产生时所在的文件名称 %L: 输出代码中的行号 %m: 输出代码中指定的消息,产生的日志具体信息 %n: 输出一个回车换行符,Windows平台为"/r/n",Unix平台为"/n"输出日志信息换行
三、程序使用
private static final Logger logger = LoggerFactory.getLogger("xxx"); ... logger.info("xxx:{}, xxx:{}", id, name);

作者: 美码师(zale)
出处: http://www.cnblogs.com/littleatp/, 如果喜欢我的文章,请关注我的公众号
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出 原文链接 如有问题, 可留言咨询.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?