Java日志
本节主要是介绍了各种日志的分类情况,并没有作具体实现。
一、为什么使用日志?
日志的使用是为了克服输出语句System.out.println()
在开发过程中产生的种种不便。例如:
- 不能自定义样式
- 不能按照级别进行输出控制
- 不能自动输出更多有用的信息(例如调用类、时间信息等)
- 不能够被自动重定向至文件长久保存
- 需要频繁的进行增加和删除输出语句
而可供我们使用的日志非常多,下面我会介绍几款现在比较流行的 Java 日志框架。
二、使用 JDK Logging
-
简介:Java 内置日志对象,标准库 java.util.logging。
-
存在很大的局限性,比如:
-
配置不方便。如果我们需要配置,需要在 JVM 启动时传入启动参数,如:
-Djava.util.logging.config.file=<config-file-name>
-
日志系统会在 JVM 启动时读取配置文件并完成初始化,一旦开始运行就无法再次修改配置。
-
-
简单使用
public class Test { public static void main(String[] args) { Logger logger = Logger.getGlobal(); logger.info("start process..."); logger.warning("memory is running out..."); logger.fine("ignored."); logger.severe("process will be terminated..."); } }
三、使用 Commons Logging + log4j
-
简介
- Commons Logging:Apache日志管理模块,负责为所有的Java日志实现提供一个统一的接口,使项目与日志实现工具解耦。它的特色是可以挂载不同的日志系统、并不负责具体的日志实现,通常和 log4j 组合使用。
- log4j:组件化的日志设计系统、日志实现模块,负责具体的日志实现。
-
简单使用:
public class Main { public static void main(String[] args) { Log log = LogFactory.getLog(Main.class); log.info("start..."); log.warn("end."); } }
四、使用 SLF4J + logback
-
简介:
- SLF4J:相当于Commons Logging,日志管理模块。slf4j的接口定义几乎与Commons Logging 一模一样,只存在细微差别。
- logback:相当于log4j,日志实现模块。
-
产生原因:
- 有人对 Commons Logging 接口不满意,于是产生了 SLF4J。
- 有人对Log4j性能不满意,于是产生了 logback。
-
简单使用
public class Main { public static void main(String[] args) { Logger logger = LoggerFactory.getLogger(getClass()); logger.info("start..."); logger.warn("end."); } }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析