关于日志java的log
刚开始学习java时,我们习惯使用System.out.println()来打印日志,这样简单有效。但是在真正写业务代码时发现,没有standout,只有文件,需要把日志写入日志文件。在使用日志框架时,我们大部分使用了info和error级别。在使用比人提供的库时,有大量无效日志输出,干扰了我们的正常业务。于是我们需要能够将一些类和包的日志关闭,或者降低其级别。这里就体现了一个日志框架的优秀与否,能否很方便的关掉日志?
有许多日志框架,比如sl4j,log4j,common-log等,但是他们的作用是不同的。日志框架的使用,体现了设计模式中的门面模式。sl4j只提供了接口定义,而log4j是实现。那么这两个包是如何协同工作的呢?这就是sl4j-log4j的作用。log4j设计时没有考虑到sl4j,同理sl4j的设计也没有考虑到log4j,于是就需要这个jar包将两个包沟通起来,就像mybatis提供的mybaits-spring依赖包一样。
1 2 3 | SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder" . SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http: //www.slf4j.org/codes.html#StaticLoggerBinder for further details.<br>// 这个提示就是说明没有配置log的具体实现。 |
那么slf4j是怎么找到具体实现框架的呢?答案就是org.slf4j.impl.StaticLoggerBinder,具体实现类都实现了这个类,就相当于slf4j和其他实现库的约定,slf4j会查找这个类。
1 2 3 | log4j:WARN No appenders could be found for logger (org.slf4j.LoggerFactory). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http: //logging.apache.org/log4j/1.2/faq.html#noconfig for more info.<br>这个报错是说log4j没有找到相应的配置文件 |
然后可以参考log4j官网的配置,进行相关的配置
参考博文:https://www.cnblogs.com/chenhongliang/p/5312517.html
log4j和sl4j的作用:https://www.cnblogs.com/xrq730/p/8619156.html
log4j的配置:https://sixdegree.github.io/2013/05/02/Java-Log4j.html
这篇很详细了
日进有功
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
2018-05-26 linux下的systemd和systemctl命令