`

日志级别与内容

阅读更多

原写于2010-10-09

 

题记:日志记录,对一个应用非常重要,不仅仅只为定位线上bugexception日志),还有业务日志,比如:统计用户的搜索词、响应时间等。

 

一、日志级别

 

众所周知,在log4j中定义5个最常用日志级别:debuginfowarnerrorfatal,级别依次严重。

可大家思考过,什么时候应该记infoexception时是应该记warn,还是error呢 ?下面是今天小团队讨论后,自己的一些理解。

 

debug:程序内部的信息,对于外部使用的人是没有意义。比如:函数的执行时间。(fine-grained information events that are most useful to debug an applicationdebug记录的是细粒度的事件信息,对于调式程序是非常有用的。

 

infoinformational messages that highlight the progress of the application at coarse-grained level.(强调应用的执行的进度,关键分支的记录)。比如:关键分支记录(输入参数等),

对运维工程师来说这些信息也是有价值的,info指明程序的运行是否符合正确的业务逻辑。

 

对于warnerror级别,是我自己最困惑的 ?

 

先讲个形象的例子 :

 

         有一天,李三说请你帮个忙,帮他收拾一下自行车,但是他的自行车是放在他自己家里的,房屋上锁。

         1、李三:给你钥匙,此时你没有工具,但是你可以用你自家的工具修理自行车。结果:完成任务;过程:存在问题,内部可以处理此问题。

         2、李三:没给你钥匙,但给你工具或者没给你工具,此时你不能接触到自行车。结果:无法完成任务;过程:存在问题,无法处理此问题。

 

结论:1情况,记warn2情况,记error。观点:关注的是最小单元的业务是否能够完成,而对于应用来说,最小单元的业务就是“method方法,每个方法去完成的任务都是一个独立的、最小单元的业务。

 

提醒:必须结合具体场景来判断,比如:dao从数据库获取数据失败,对自身来说是error,没有完成获取数据的任务;但对业务层来说,或者有其它方法修复此异常,如通过http重新获取等,此时业务层是完成自身任务的,所以为warn

 

1. warnpotentially harmful situations.(潜在的有害状态)。比如:广告投放,淘宝搜索右侧p4p广告会根据地域展现,但某次用户搜素,ip地址获取失败,可能会用默认值替代或者为空,但是并不影响右侧广告的展现。所以展现广告的任务是完成的,对于业务来说是执行成功的,尽管过程中出现问题。

 

2. errorerror events that might still allow the application to continue running.(错误事件发生,程序或许依然能够运行)。比如:广告前段展现,通过http从引擎获取数据时,因为引擎的机器连接数达到上限或者临时网络原因,timeout,但程序能正常运行,next请求引擎则成功。从函数角度看,此函数任务没有完成,记error

 

3. fatalvery severe error events that will presumably lead the application to abort.(错误可能会导致应用崩溃)。

 

 

对于日志级别,或许大家也会有自己的理解(如有不同意见,请大家指点)

 

 

二、记录信息

 

这个话题简单三点:

1、做什么操作

2、输入内容

3、堆栈信息(有堆栈信息的情况下)

 

分享到:
评论

相关推荐

    Printk日志级别

    linux系统中Printk日志级别简介

    SparkStreaming流式日志过滤与分析

    ”日志级别、函数名、日志内容“ 三个字段,字段之间以空格拆分。请看数据源的文件。 (2)对读入都日志信息流进行指定筛选出日志级别为error或warn的,并输出到外部MySQL中。 需要用到的函数 (1)输入采用...

    轻量级日志采集动态库(windows),可用于分布式应用日志采集.

    轻量级日志采集动态库. 4个日志级别接口宏定义: ...年月日|时分秒:微秒|记录日志文件名|记录日志函数名|日志级别|进程id|线程id|调用应用名|应用版本|日志内容. 示例: 查看Log_2021-11-02(14).log文件

    日志管理系统mysql数据库设计

    日志记录:记录各个业务系统的日志数据,包括日志级别、日志消息内容等信息。 日志类型管理:管理日志类型信息,包括类型名称、描述等。通过日志类型,可以将不同的日志数据分类,以便更好地管理和查询。 日志与类型...

    Log Viewer日志查看器

    这样既可以防止自动跟踪日志影响当前关注的内容,又可以在需要时方便地载入最新的日志。 2.对不同级别的日志项着色标注。 3.可依据级别过滤日志。 4.方便搜索。 5.以列表的形式分栏显示日志项,底部显示当前选中行的...

    Log Viewer(日志查看器)

    这样既可以防止自动跟踪日志影响当前关注的内容,又可以在需要时方便地载入最新的日志。 2.对不同级别的日志项着色标注。 3.可依据级别过滤日志。 4.方便搜索。 5.以列表的形式分栏显示日志项,底部显示当前选中行的...

    华为-3com日志解释器V2.0.rar

    6:过滤日志:在您打开日志文件的同时,工具软件会自动分析文件里的日志格式,并对 主机名、模块名、日志级别 三项,分门别类进行统计。当文件打开操作完成后,工具会自动填写 这三个表格:您可以根据你的需要,...

    [sqlserver日志分析工具]EventLog Analyzer全面的数据库活动监视工具

    sqlserver日志分析工具 使用 EventLog Analyzer 审核 Microsoft SQL Server 日志 EventLog Analyzer是一个全面的MS SQL数据库...直观的仪表板:向下钻取到原始日志级别并查看收集的日志内容,以便简化根本原因分析。

    go-log:Pacakge go-log 扩展了标准日志包以利用 BSD 日志级别并允许使用多个日志消息接收者

    紧急救援警报暴击呃警告注意信息调试用法要使用日志级别,请将以下内容添加到您的import语句中: "github.com/inhies/go-log"_ "log"然后用l, err := log.NewLevel(log.ERR,true, os.Stdout, "", log.Ltime)类的...

    java日志框架视频教程

    日志级别3. Logger直接父子关系4. 配置文件5. 原理解析章节三:Log4j1. 快速入门2. Log4j组件解析3. Layout格式4. Appender输出5. 自定义Logger章节四:JCL1. 快速入门2. 原理解析章节五:Slf4j1. 快速入门2. 绑定...

    WAF培训资料9-日志报表.pptx

    显示列控制:每条日志由多个不同的属性列构成,如系统日志,包含的属性列有:时间、登录IP、用户、事件、摘要、日志级别、状态。可以配置每个属性列显示与否和排序方式。操作方法:鼠标移至显示列控制栏上某一属性...

    EFK+kafka+head日志分析集群部署.rar

    日志分析集群,在本地centos7虚拟机搭建的Es+firebeat+logstash+kibana+kafka+head的完整集群部署文档,很详细,通常的EFK日志分析,加上kafka的消息队列,可以处理PB级别的日志内容。

    Easylogger轻量级日志的 linuxdemo

    日志内容可包含级别、时间戳、线程信息、进程信息等; 日志输出被设计为线程安全的方式,并支持 异步输出 及 缓冲输出 模式; 支持多种操作系统(RT-Thread、UCOS、Linux、Windows...),也支持裸机平台; 日志支持 ...

    wpf log4net richtextbox

    简单日志记录,界面使用RichTextBox记录日志,根据日志级别显示日志内容不同的颜色,同时使用log4net记录本地文件日志。

    通用java日志记录开发包,短小而精悍,适合各种大小项目

    以下是配置文件内容: #日志文件所在目录,不指定则为当前目录。特别注意,在windows的目录分隔符为"\\",例如 c:\\logs(重启后生效) logFileDirectory=./logs #日志文件主文件名(重启后生效) logFileMainName=ex...

    loglevel:最小JavaScript轻量级日志记录,添加可靠的日志级别方法以包装任何可用的console.log方法

    日志级别 不要仅使用日志进行调试-签出 :用于构建,测试和调试HTTP(S)的漂亮,功能强大且开源的工具最少JavaScript轻量级简单日志记录。 loglevel用基于级别的日志记录和过滤替换console.log()和它的朋友,没有...

    如何使用Google日志记录库(glog).html

    您可以通过简单地将内容流式传输到LOG(<特定严重性级别 >)来记录消息,Google glog定义了一系列宏,可简化许多常见的日志记录任务。您可以按严重性级别记录消息,从命令行控制日志记录行为,基于条件记录日志,在...

    中文版OEM7命令和日志参考手册.mhtml

    OEM7®命令和日志参考手册OEM7命令和日志参考手册v12 OEM7命令和日志参考手册 出版号: OM-20000169修订级别: v1修订日期: 2017年2月固件版本:7.200 / OM7MR0200RN0000 所有权声明 本文档中的信息如有更改,恕不...

    EasyLogger 高性能的 C/C++ 日志库,源代码

    日志内容可包含级别、时间戳、线程信息、进程信息等; 日志输出被设计为线程安全的方式,并支持 异步输出 及 缓冲输出 模式; 支持多种操作系统(RT-Thread、UCOS、Linux、Windows、Nuttx...),也支持裸机平台; ...

    是一款超轻量级(ROM<1.6K, RAM<0.3K)、高性能的 C/C++ 日志库,源码开放,非常适合对资源敏感的软件项目

    - 日志内容可包含级别、时间戳、线程信息、进程信息等; - 日志输出被设计为线程安全的方式,并支持 **异步输出** 及 **缓冲输出** 模式; - 支持多种操作系统([RT-Thread](http://www.rt-thread.org/)、UCOS、...

Global site tag (gtag.js) - Google Analytics