Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >日志级别记录规范

日志级别记录规范

作者头像
后场技术
发布于 2020-09-03 09:41:25
发布于 2020-09-03 09:41:25
19.8K0
举报
文章被收录于专栏:后场技术后场技术

之前看了网上发的日志级别的使用规范和「日志管理与分析权威指南」里面的日志级别规范和说明,具体内容如下。

JAVA Log4j的8个日志级别

log4j定义了8个级别的log(除去OFF和ALL,可以说分为6个级别),优先级从高到低依次为:OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、 ALL。

「ALL」: 最低等级的,用于打开所有日志记录。

「TRACE」 : designates finer-grained informational events than the DEBUG.Since:1.2.12,很低的日志级别,一般不会使用。

「DEBUG」: 指出细粒度信息事件对调试应用程序是非常有帮助的,主要用于开发过程中打印一些运行信息。

「INFO」: 消息在粗粒度级别上突出强调应用程序的运行过程。打印一些你感兴趣的或者重要的信息,这个可以用于生产环境中输出程序运行的一些重要信息,但是不能滥用,避免打印过多的日志。

「WARN」: 表明会出现潜在错误的情形,有些信息不是错误信息,但是也要给程序员的一些提示。

「ERROR」: 指出虽然发生错误事件,但仍然不影响系统的继续运行。打印错误和异常信息,如果不想输出太多的日志,可以使用这个级别。

「FATAL」: 指出每个严重的错误事件将会导致应用程序的退出。这个级别比较高了。重大错误,这种级别你可以直接停止程序了。

「OFF」: 最高等级的,用于关闭所有日志记录。

如果将log level设置在某一个级别上,那么比此级别优先级高的log都能打印出来。例如,如果设置优先级为WARN,那么OFF、FATAL、ERROR、WARN4个级别的log能正常输出,而INFO、DEBUG、TRACE、 ALL级别的log则会被忽略。Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。

致命错误「FATAL」

表示需要立即被处理的系统级错误。当该错误发生时,表示服务已经出现了某种程度的不可用,系统管理员需要立即介入。

这属于最严重的日志级别,因此该日志级别必须慎用,如果这种级别的日志经常出现,则该日志也失去了意义。

通常情况下,一个进程的生命周期中应该只记录一次FATAL级别的日志,即该进程遇到无法恢复的错误而退出时。

当然,如果某个系统的子系统遇到了不可恢复的错误,那该子系统的调用方也可以记入FATAL级别日志,以便通过日志报警提醒系统管理员修复。

错误 「ERROR」

错误日志是用来传递系统或应用程序中出现的各种级别的错误。例如,操作系统在无法同步缓存区到磁盘的时候会生成错误信息。不确定的是,许多错误信息只能给出为什么出错的起点,要寻找出导致错误发生的根本原因还需要进一步分析。

该级别的错误也需要马上被处理,但是紧急程度要低于FATAL级别。当ERROR错误发生时,已经影响了用户的正常访问。从该意义上来说,实际上ERROR错误和FATAL错误对用户的影响是相当的。

FATAL相当于服务已经挂了,而ERROR相当于好死不如赖活着,然而活着却无法提供正常的服务,只能不断地打印ERROR日志。

特别需要注意的是,ERRORFATAL都属于服务器自己的异常,是需要马上得到人工介入并处理的情况。而对于用户自己操作不当,如请求参数错误等等,是绝对不应该记为ERROR日志的。

警告 「WARN」

警告信息是在系统即将丢失东西,而又不影响系统运行下而产生的,例如一个应用程序在没有获得正确数量的参数传递的时候,但是它又能够在没有这些参数的情况下正常运行,这种情况下可能就是记录警告信息提示使用者或者管理员。

该日志表示系统可能出现问题,也可能没有问题,这种情况在例如网络的波动等情况。对于那些目前还不是错误,然而不及时处理也会变为错误的情况,也可以记为WARN日志,例如一个存储系统的磁盘使用量超过阀值,或者系统中某个用户的存储配额快用完等等。

对于WARN级别的日志,虽然不需要系统管理员马上处理,也是需要即时查看并处理的。因此此种级别的日志也不应太多,能不打WARN级别的日志,就尽量不要打。

信息 「INFO」

这种类型的信息被设计成告诉用户或者开发者一些没有风险的事情发生了。该种日志记录系统正常运行状态,例如某个子系统的初始化,某个请求的成功执行等等。

通过查看INFO级别的日志,可以很快地对系统中出现的WARN,ERROR,FATAL错误进行定位。INFO日志不宜过多,通常情况下,INFO级别的日志应该不大于TRACE日志的10%。

调试 DEBUG or TRACE

软件系统在应用程序代码运行时生成的调式信息,是为了给软件开发人员提供故障检测和定位问题的帮助。

这两种日志具体的规范应该由项目组自己定义,该级别日志的主要作用是对系统每一步的运行状态进行精确的记录。

通过该种日志,可以查看某一个操作每一步的执行过程,可以准确定位是何种操作,何种参数,何种顺序导致了某种错误的发生。可以保证在不重现错误的情况下,也可以通过DEBUG(或TRACE)级别的日志对问题进行诊断。

需要注意的是,DEBUG日志也需要规范日志格式,应该保证除了记录日志的开发人员自己外,其他的如运维,测试人员等也可以通过DEBUG(或TRACE)日志来定位问题。

Python日志级别参考: http://suo.im/6fvfZa http://suo.im/6ut404 Linux系统日志级别参考: http://suo.im/60sStE ❞

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-08-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 后场技术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
slf4j-api、slf4j-log4j12、log4j之间关系
slf4j:Simple Logging Facade for Java,为java提供的简单日志Facade。Facade门面,更底层一点说就是接口。它允许用户以自己的喜好,在工程中通过slf4j接入不同的日志系统。
chenchenchen
2019/09/03
7.5K0
slf4j-api、slf4j-log4j12、log4j之间关系
这份Java日志格式规范,拿走不谢!
在程序中写日志是一件非常重要,但是很容易被开发人员忽视的地方。写好程序的日志可以帮助我们大大减轻后期维护压力。
架构师修炼
2022/05/17
4090
带你深入Java Log框架,彻底搞懂Log4J、Log4J2、LogBack,SLF4J
使用过Log4J和LogBack的同学肯定能发现,这两个框架的设计理念极为相似,使用方法也如出一辙。其实这个两个框架的作者都是一个人,Ceki Gülcü,俄罗斯程序员。
码老思
2023/10/19
5.4K0
带你深入Java Log框架,彻底搞懂Log4J、Log4J2、LogBack,SLF4J
Confluence 6 log4j 日志级别
有 2 个方法能够对 Confluence 的日志输出进行调整,相关的方法描述在 log4j Logging Levels 中。
HoneyMoose
2019/01/30
5510
Jmeter(四十二) - 从入门到精通进阶篇 - Jmeter配置文件的刨根问底 -番外篇(详解教程)
为什么宏哥要对Jmeter的配置文件进行一下讲解了,因为有的童鞋或者小伙伴在测试中遇到一些需要修改配置文件的问题不是很清楚也不是很懂,就算修改了也是模模糊糊的。更有甚者觉得那是禁地神圣不可轻犯不敢触碰不敢修改,害怕修改错了Jmeter运行不了了。听宏哥的大胆修改大不了再重新安装一个新的Jmeter,或者你有做备份的好习惯,在修改前备份好以后大胆修改,修改错了直接使用备份文件恢复过来就可以。
北京-宏哥
2021/04/13
1.1K0
Log日志级别介绍及Logback配置指定包日志级别
日志对于开发来说是很重要的,可以通过日志判断问题出现的原因,但是日志过多或者无用的日志会影响问题定位,而且日志文件过大,影响服务器内存,所以对于一些不必要的日志不展示,还是很重要的,本文就是介绍Log日志级别及在项目中如何控制项目中不通过包名或者类日志的展示。
小明爱吃火锅
2024/04/26
7.5K0
log4j.properties详解及配置
  Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。
程序员云帆哥
2022/05/12
1.1K0
Log4j官方文档翻译(六、日志的级别)
org.apache.log4j.Level 类提供了下面几种日志级别,你也可以通过继承这些类,自定义级别 ALL 所有日志级别都包括 DEBUG 指定信息事件的粒度是DEBUG,在调试应用的时候会有帮助 ERROR 指定错误事件,并且这些事件还会保证应用继续运行 FATAL 指定严重的错误事件,该事件会导致应用暂停 INFO 指定信息消息,强调应用粗粒度的运行情况 OFF 最高等级,相当与关闭了日志 TRACE 指定比DEBUG更细粒度的调试日志 WARN 输出具有潜在风险的信息 如何使用不同的级别 lo
用户1154259
2018/01/17
7180
使用 Log4j2 + SLF4j 打造日志系统的全方位教程
java 界里有许多实现日志功能的工具,最早得到广泛使用的是 log4j,许多应用程序的日志部分都交给了 log4j,不过作为组件开发者,他们希望自己的组件不要紧紧依赖某一个工具,毕竟在同一个时候还有很多其他很多日志工具,假如一个应用程序用到了两个组件,恰好两个组件使用不同的日志工具,那么应用程序就会有两份日志输出了。
洋仔聊编程
2020/08/03
2.2K0
Java中的Log
文章作者:Tyan 博客:noahsnail.com  |  CSDN  |  简书
Tyan
2022/05/09
4570
【Java】Log4j日志
通过PatternLayout实现类ConversionPattern属性可以设置具体自定义布局。布局格式采用类似 C
陶然同学
2023/02/24
5600
【Java】Log4j日志
java日志框架之Log4j
Java微观世界
2025/01/21
2330
java日志框架之Log4j
JAVA基础(29) Log4j 日志级别
官方网址: http://logging.apache.org/log4j/1.2/ log4j是apache基金会的一个项目,日志记录器(Logger)是日志处理的核心组件,log4j具有7种级别(Level).
Java架构师必看
2021/06/10
4570
《手把手教你》系列基础篇(八十七)-java+ selenium自动化测试-框架设计基础-Log4j 2实现日志输出-上篇(详解教程)
Apache Log4j 是一个非常古老的日志框架,并且是多年来最受欢迎的日志框架。 它引入了现代日志框架仍在使用的基本概念,如分层日志级别和记录器。
北京-宏哥
2022/04/27
4410
《手把手教你》系列基础篇(八十七)-java+ selenium自动化测试-框架设计基础-Log4j 2实现日志输出-上篇(详解教程)
Apache开源日志框架Log4j配置指南
Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最方便的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。本篇指南主要介绍Log4j 1.x版本的配置与使用Log4j最新版下载地址:http://www.apache.org/dyn/closer.cgi/logging/log4j/1.2.17/log4j-1.2.17.zip
老九学堂-小师弟
2019/10/09
9140
聊一聊log4j2配置文件log4j2.xml
  最近由于项目的需要,我们把log4j 1.x的版本全部迁移成log4j 2.x 的版本,那随之而来的slf4j整合log4j的配置(使用Slf4j集成Log4j2构建项目日志系统的完美解决方案)以及log4j2配置文件的详解,就需要我们来好好聊一聊了。本文就专门来讲解下log4j2.xml配置文件的各项标签的意义。
阿豪聊干货
2018/08/09
6.4K0
Springboot 整合 log4j2 日志详解
在项目推进中,如果说第一件事是搭 Spring 框架的话,那么第二件事情就是在 Sring 基础上搭建日志框架,我想很多人都知道日志对于一个项目的重要性,尤其是线上 Web 项目,因为日志可能是我们了解应用如何执行的唯一方式。
JavaFish
2020/01/02
1.3K0
日志系统
上一篇说了一下《解决问题的一般套路》,里面讲到了日志系统的重要性,日志重要吗?监控重要吗?of course!日志就是要能找到用户做了什么请求那个机器。上下游接口请求,请求参数和入参是否正确,我们可以统一写一个面向切面方法去打印日志,不用每一处去写,切入点大家自己按照规则定义,AOP是Spring提供的关键特性之一。 AOP即面向切面编程,是OOP编程的有效补充。使用AOP技术,可以将一些系统性相关的编程工作,独立提取出来,独立实现,然后通过切面切入进系统。从而避免了在业务逻辑的代码中混入很多的系统相关的逻辑——比如权限管理,事物管理,日志记录等等。这些系统性的编程工作都可以独立编码实现,然后通过AOP技术切入进系统即可。从而达到了 将不同的关注点分离出来的效果。
只喝牛奶的杀手
2019/08/26
1.8K0
日志系统
log4j2.xml放在哪里_log4j日志配置详解
  log4j 2.x版本不再支持像1.x中的.properties后缀的文件配置方式,2.x版本配置文件后缀名只能为”.xml”,“.json”或者”.jsn”。 配置文件的格式:log2j配置文件可以是xml格式的,也可以是json格式的。 配置文件的位置:log4j2默认会在classpath目录下寻找log4j2.xml、log4j.json、log4j.jsn等名称的文件。 系统选择配置文件的优先级(从先到后)如下:   (1).classpath下的名为log4j2-test.json 或者log4j2-test.jsn的文件.   (2).classpath下的名为log4j2-test.xml的文件.   (3).classpath下名为log4j2.json 或者log4j2.jsn的文件.   (4).classpath下名为log4j2.xml的文件.   我们一般默认使用log4j2.xml进行命名。
全栈程序员站长
2022/11/11
1.5K0
log4j配置方式
Log4j是用于管理信息日志的插件工具,它是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX、Syslog守护进程、Email邮箱等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些只需要通过一个配置文件来灵活地进行配置,而不需要修改工程的代码,Log4j因为是在java中使用的,所以lo4j就是log for Java(java的日志)的简写。
端碗吹水
2020/09/23
1.1K0
log4j配置方式
推荐阅读
相关推荐
slf4j-api、slf4j-log4j12、log4j之间关系
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档