Java历史悠久、应用广泛,是很多想要从事IT开发行业人的首要选择。日志是程序运行过程的信息,其数据能够帮助开发人员提前发现并避开异常,在错误发生后能够找到事件的起因,并纠正错误,达到预期的运行效果。想要成为一个优秀的Java工程师,一定要学会合理的使用日志,下面就给大家分享一下日志知识点总结。
Java中有哪些不同的日志级别?
1)debug是最低的限制级别,这个级别只能用于开发和测试环境中,不可以用于生产环境。
2)info略高于debug的限制级别,可以用这个级别记录一些信息型消息比如服务器启动成功、输入的数据、输出的数据等。
3)warn的限制级别高于info,它用来记录警告信息比如客户端和服务器之间的连接中断、数据库连接丢失、Socket达到上限。
4)error比warn的限制级别还高,用于记录error和Exception。你可以在该日志级别上设置警报装置,并且提醒运维团队对之做出处理。error非常重要,你必须将其记录下来。
5)fatal是指可能导致程序终止的非常严重的时间,在这种事件之后你的应用很可能会崩溃。
6)off具有最高的级别,旨在关闭Java中的日志功能。
Java中常见的日志工具有哪些?
log4j。最受欢迎的Java日志组件,是一款基于Java的开源日志组件。Log4j功能非常强大,我们可以将日志信息输出到控制台、文件、用户界面,也可以输出到操作系统的事件记录器和一些系统常驻进程。
gclogviewer。Java日志查看工具,是一个支持jdk 6的gclog可视化工具,和gcviewer相比,gclogviewer支持根据gclog生成GC的趋势图,也支持生成调优建议所需的数据趋势图。
LF4J。基于API的Java日志框架,SLF4J提供了一个简单统一的日志记录接口,开发者在配置和部署时只需要实现这个接口即可实现日志功能。
Flume。Apache日志服务器,是一个日志分析系统,Flume是分布式的,它有一个非常灵活的架构,用来收集、聚合以及移动大量日志数据,并且提供可靠、容错的系统架构。
zLogFabric。日志存储系统,是一个集成的跨平台日志解决方案,通过消息系统收集各个应用的日志信息存储到一个集中式的系统中。
Java中如何打开日志?(以SLF4J为例)
什么时候应该打开日志呢?主要分为三种情况:1)当你遇到问题的时候,只能通过debug功能来确定问题;2)当你碰到if…else或者switch这样的分支时,要在分支的首行打印日志确定进入了哪个分支;3)以功能为核心进行开发,你应该在提交代码前,可以确定通过日志可以看到整个流程。
基本格式
必须使用参数化信息的方式:
logger.debug("Processing trade with id:[{}] and symbol : [{}] ", id, symbol);
对于debug日志,必须判断是否为debug级别后,才进行使用:
if (logger.isDebugEnabled()) {
logger.debug("Processing trade with id: " +id + " symbol: " + symbol);
}
不要进行字符串拼接,那样会产生很多String对象,占用空间、影响性能。
如有参数变量,应该写成如下写法:
logger.debug("Processing trade with id:[{}] and symbol : [{}] ", id, symbol);
这样的格式写法,可读性更好,对于排查问题更有帮助。
相关文章
了解千锋动态
关注千锋教育服务号
扫一扫快速进入
千锋移动端页面
扫码匿名提建议
直达CEO信箱