日志级别的选择:Debug、Info、Warn、Error还是Fatal

日志信息分类

1.等级由低到高:debug<info<warn<Error<Fatal;

2.区别:

debug 级别最低,可以随意的使用于任何觉得有利于在调试时更详细的了解系统运行状态的东东;

info  重要,输出信息:用来反馈系统的当前状态给最终用户的;

后三个,警告、错误、严重错误,这三者应该都在系统运行时检测到了一个不正常的状态。

warn, 可修复,系统可继续运行下去;

Error, 可修复性,但无法确定系统会正常的工作下去;

Fatal, 相当严重,可以肯定这种错误已经无法修复,并且如果系统继续运行下去的话后果严重。

3.使用

什么时候使用 info, warn , error ?

info 用于打印程序应该出现的正常状态信息, 便于追踪定位;

warn 表明系统出现轻微的不合理但不影响运行和使用;

error 表明出现了系统错误和异常,无法正常完成目标操作。

4.格式

总结起来, 错误日志格式可以为:

log.error(“[接口名或操作名] [Some Error Msg] happens. [params] [Probably Because]. [Probably need to do].”);

log.error(String.format(“[接口名或操作名] [Some Error Msg] happens. [%s]. [Probably Because]. [Probably need to do].”, params));

log.error(“[Some Error Msg] happens to 错误参数或内容 when [in some condition]. [Probably Because]. [Probably need to do].”);

log.error(String.format(“[Some Error Msg] happens to %s when [in some condition]. [Probably Because]. [Probably need to do].”, parameters));

[Probably Reason]. [Probably need to do]. 在某些情况下可以省略; 在一些重要接口和场景下最好能说明一下。

每一条错误日志都是独立的,尽可能完整、具体、直接说明何种场景下发生了什么错误,由什么原因导致,要采用什么措施或步骤。

5.意义

错误日志是排查问题的重要手段之一。 当我们编程实现一项功能时, 通常会考虑可能发生的各种错误及相应原因:

要排查出相应的原因, 就需要一些关键描述来定位原因。这就会形成三元组:错误现象 -> 错误关键描述 -> 最终的错误原因。

需要针对每一种错误尽可能提供相应的错误关键描述,从而定位到相应的错误原因。也就是说,编程的时候,要仔细思考, 哪些描述是非常有利于定位错误原因的, 尽可能将这些描述添加到错误日志中。

时间: 2024-10-10 20:48:36

日志级别的选择:Debug、Info、Warn、Error还是Fatal的相关文章

DEBUG技巧-设定合适的日志级别

有些技能只有踩过坑的人才能够掌握,能用来避免后来的坑,很多时候是用凌晨的时间换来的,我们通常把他叫做经验. 故事 这个一个关于springmvc的坑的故事. 某天晚上本打算一个小功能分分钟搞定上线,但页面总是报404错误,肉眼实在找不到原因. 各种手段折腾,断点,重启,重新打包,拍脑袋觉得代码没写错,url路径也ok,真心没问题,无数次f5就是不出来. 很多时候遇到一个bug越着急越搞不定,我就是这种情况,花了一两个小时时间,眼看都过0点了,此时我正用最后的手段,引入spring源码直接一步步d

log4j.properties日志级别debug打印后台sql语句

通常,日志的打印级别对开发的辅助性非常重要,合适的日志级别能够快速定位开发问题. 很多时候,开发时我们需要检查后台sql语句,可通过配置log4j配置文件来完成. 当INFO级别时,与数据库交互时是不会打印sql语句的,配置如下: 为了更清晰的看到sql的输出,我们现在把日志级别改为DEBUG,如下: 这样在与数据库交互时,控制台就会将sql打印出来,便于定位问题:同时也可以很明显的看出INFO与DEBUG的日志输出区别,DEBUG输出的日志较多,且在项目启动的时候也较慢. 原文地址:https

日志入门一:日志级别

序言 我们经常做项目,都会遇到日志的记录,日志记录都有统一的标准,下面我们就简述常见的几种日志级别:::::Debug.  Info .Warn. Error .Fatal  日志级别 Debug<Info<Warn<Error<Fatal    日志的级别越来越高 一.Debug (1)最低的级别,一般来说,系统实际运行中,一般都是不输出. (2)该级别既然是最低,可以随意的使用,任何有利在调试详细的了解系统运行状态的东西,如果:::变量,查询内容等等 (3)在每一个 Debug

日志级别【sl4j】-简单回顾

软件中总免不了要使用诸如 Log4net, Log4j, Tracer 等东东来写日志,不管用什么,这些东东大多是大同小异的,一般都提供了这样5个日志级别: Debug Info Warn Error Fatal 一个等级比一个高,但是在具体开发中,关于应该如何选择适应的等级,却没有找到好的文章进行说明.记录一下自己的一些看法,以便日后使用吧. === Debug === 这个级别最低的东东,一般的来说,在系统实际运行过程中,一般都是不输出的. 因此这个级别的信息,可以随意的使用,任何觉得有利于

Log4cpp配置文件及动态调整日志级别的方法

一.log4cpp概述 Log4cpp是一个开源的C++类库,它提供了C++程序中使用日志和跟踪调试的功能,它的优点如下: 提供应用程序运行上下文,方便跟踪调试: 可扩展的.多种方式记录日志,包括命令行.文件.回卷文件.内存.syslog服务器.Win事件日志等: 可以动态控制日志记录级别,在效率和功能中进行调整: 所有配置可以通过配置文件进行动态调整: 多语言支持,包括Java(log4j),C++(log4cpp.log4cplus),C(log4c),python(log4p)等: 二.原

Log4J日志配置详解和自定义log4j日志级别及输出日志到不同文件实现方法

Log4J日志配置详解 一.Log4j简介 Log4j有三个主要的组件:Loggers(记录器),Appenders(输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在运行时控制日志输出的样式和位置. 1.Loggers Loggers组件在此系统中被分为五个级别:DEBUG.INFO.WARN.ERROR和FATAL.这五个级别是有顺序的,DEBUG < INFO < WARN <

Log4j基本用法----日志级别

基本使用方法: Log4j由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志信息的输出格式.日志信息的优先级从高到低有ERROR.WARN.INFO.DEBUG,分别用来指定这条日志信息的重要程度:日志信息的输出目的地指定了日志将打印到控制台还是文件中:而输出格式则控制了日志信息的显示内容. 日志信息的优先级 org.apache.log4j.Level类提供以下级别,但也可以通过Level类的子类自定义级别. Level 描述 ALL 各级包括自定义级别 DEBUG 指定细粒度

Log4j的日志级别分析(转)

说明:Log4j的日志是有级别的,从低到高顺序为:ALL < DEBUG < INFO < WARN < ERROR < FATAL < OFF,当定义了日志级别为WARN后,那么其比它高的级别(ERROR < FATAL)会打印出来. 基本使用方法: Log4j由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志信息的输出格式.日志信息的优先级从高到低有ERROR.WARN.INFO.DEBUG,分别用来指定这条日志信息的重要程度:日志信息的输出目

java log4j基本配置及日志级别配置详解

java log4j日志级别配置详解 1.1 前言 说出来真是丢脸,最近被公司派到客户公司面试外包开发岗位,本来准备了什么redis.rabbitMQ.SSM框架的相关面试题以及自己做过的一些项目回顾,信心满满地去面试,结果别人一上来就问到了最近项目使用的日志系统是什么?日志级别是怎么配置的?当时我都蒙X了,平时都是项目经理搭的,我自己也是随便上网一搜往配置文件一黏贴就OK了.我就这么说完后面试官深深定了我一眼,当时我的内心羞愧到...... 1.2 闲话少说,讲讲日志的发展故事(如果已经了解的