首页 » 软件优化 » 一文看懂(日志级别是一个功能信息)

一文看懂(日志级别是一个功能信息)

乖囧猫 2024-11-26 07:13:04 0

扫一扫用手机浏览

文章目录 [+]

​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);

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

标签:

相关文章