龙空技术网

Java大牛总结:Java日志知识点详解,一文看懂

艾特程序员 825

前言:

今天我们对“apache日志分析”可能比较关注,兄弟们都需要剖析一些“apache日志分析”的相关文章。那么小编也在网上汇集了一些有关“apache日志分析””的相关知识,希望小伙伴们能喜欢,兄弟们快快来了解一下吧!

Java历史悠久、应用广泛,是很多想要从事IT开发行业人的首要选择。日志是程序运行过程的信息,其数据能够帮助开发人员提前发现并避开异常,在错误发生后能够找到事件的起因,并纠正错误,达到预期的运行效果。想要成为一个优秀的Java工程师,一定要学会合理的使用日志,今天千锋广州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);

这样的格式写法,可读性更好,对于排查问题更有帮助。

标签: #apache日志分析