日记级别

软件中总免不了要使用诸如 Log4net, Log4j, Tracer 等东东来写日志,不管用什么,这些东东大多是大同小异的,一般都提供了这样5个日志级别:
    × Debug
    × Info
    × Warn
    × Error
    × Fatal
        一个等级比一个高,但是在具体开发中,关于应该如何选择适应的等级,却没有找到好的文章进行说明。记录一下自己的一些看法,以便日后使用吧。

=== Debug ===
        这个级别最低的东东,一般的来说,在系统实际运行过程中,一般都是不输出的。

因此这个级别的信息,可以随意的使用,任何觉得有利于在调试时更详细的了解系统运行状态的东东,比如变量的值等等,都输出来看看也无妨。

当然,在每一个 Debug 调用之前,一定要加上 If 判断。

=== Info ===
        这个应该用来反馈系统的当前状态给最终用户的,所以,在这里输出的信息,应该对最终用户具有实际意义,也就是最终用户要能够看得明白是什么意思才行。

从某种角度上说,Info 输出的信息可以看作是软件产品的一部分(就像那些交互界面上的文字一样),所以需要谨慎对待,不可随便。

=== Warn、Error、Fatal ===
        警告、错误、严重错误,这三者应该都在系统运行时检测到了一个不正常的状态,他们之间的区别,要区分还真不是那么简单的事情。我大致是这样区分的:

所谓警告,应该是这个时候进行一些修复性的工作,应该还可以把系统恢复到正常状态中来,系统应该可以继续运行下去。

所谓错误,就是说可以进行一些修复性的工作,但无法确定系统会正常的工作下去,系统在以后的某个阶段,很可能会因为当前的这个问题,导致一个无法修复的错误(例如宕机),但也可能一直工作到停止也不出现严重问题。

所谓Fatal,那就是相当严重的了,可以肯定这种错误已经无法修复,并且如果系统继续运行下去的话,可以肯定必然会越来越乱。这时候采取的最好的措施不是试图将系统状态恢复到正常,而是尽可能地保留系统有效数据并停止运行。

也就是说,选择 Warn、Error、Fatal 中的具体哪一个,是根据当前的这个问题对以后可能产生的影响而定的,如果对以后基本没什么影响,则警告之,如果肯定是以后要出严重问题的了,则Fatal之,拿不准会怎么样,则 Error 之。

时间: 2024-10-24 05:55:17

日记级别的相关文章

Oracle中pls_logger记录日志信息

/* 参数说明: pi_program_name 程序名称 pi_directory 写入日志文件所在的目录 pi_file 日志文件名称,必须存在 pi_log_level 日记级别,INFO.WARN.FATAL pi_write_to 写到哪里,SCREEN.FILE.TABLE.ALL pi_error_message 写入到日志的错误信息 pi_status 输出参数 1失败 0成功 */ BEGIN pls_logger ( pi_program_name => 'SCREEN_PR

iptables/netfilter防火墙

既然名曰"防火墙",其对安全的主要性不言而喻,而防火墙分为硬件防火墙和软件防护墙,iptables/netfileter是软件防火墙,它又分为主机防火墙和网络防火墙.至于工作机制说白了就是预先定下规则然后对于进出本网络或主机的数据报文进行规则检测,然后对于满足规则的报文做出规则动作处理.而iptables组件就是在用户空间来让用户操作规则的工具,然后将这些规则放到内核空间的netfilter组件中来让内核对这些报文做指定的处理的(因为网络管理必然是要追根溯源到内核空间中的,那么就需要i

c# 链接mongDB集群实战开发3

c# 链接mongDB集群 一 了解mongdb 二  部署集群 三 C#链接mongdb 完成测试 C#链接mongdb 完成测试 此章节继续我们上一章节将的我们开始用程序去链接mondbdb,大家都知道我们链接sqlserver其实用的是微软自己写的驱动.它已经封装了一些对象,要我们去链接.但是我们链接mondbdb 同样需要一些对象,这个mongdb官网有说明,可以自己去看看或者直接下载我的这里下载 或者在第一章节有些伙伴们已经下载好了 开发驱动文件夹 在  mongo-csharp-dr

log4j使用及配置详解

log4j 日志:系统的运行信息,功能主要用于系统调试和后期维护 运行的日志记录占代码总量的4% Apache开源项目Log4j 可以控制日志的输出设置(控制台.文件等) 可以控制日志的输出格式 通过日志级别.控制日志的生成过程 特点:通过配置文件灵活配置 对比System.out不利于维护 开发步骤 导入jar包 1.创建记录器Logger private static Logger LOG = Logger.getLogger(TestLog4j.class.getName()) 2.设置默

Unable to load native-hadoop library for your pla

导致这个错的原因: 1.hadoop/lib/native/本地库不存在. 2.hadoop/lib/native/本地库与当前操作系统的版本位数不一致. 确定错误的原因: 1.查看hadoop/lib/native是否存在. 2.设置hadoop的日记级别位debug,在环境变量中添加:export HADOOP_ROOT_LOGGER=DEBUG,console,重启hadoop后,仔细观察日志,看看到底是native lib没找到还是版本不一致. 解决方法:找到合适的native lib

第二十天学习:模块(二)

1. logging (1) 日志打印到屏幕: import logging logging.debug('this is debug message') logging.info('this is info message') logging.warning('this is warning message') logging.error('this is error message') logging.critical('this is critical message') 结果: WARN

golang第三方日志包seelog配置文件详解

开发任何项目,都离不开日志,配好自己的项目日志输出,往往是开发项目的前提.在golang中,seelog应该是比较有名的日志处理包了,功能非常强大,seelog官方文档 一.seelog主要功能下面我们看看seelog有啥强大 设置不同级别的日志:输出到终端或文件:过滤指定级别日志:定义多种不同的日志输出格式:根据触发日志的文件名或者函数名来区别输出日志:通过 SMTP 或 TCP 转发日志(网络转发日志):滚动日志文件(过期日志自动清除).二.安装seelog$ go get github.c

Java日志体系 —— slf4j

1.1 简介 与commons-logging相同,slf4j也是一个通用的日志接口,在程序中与其他日志框架结合使用,并对外提供服务. Simple Logging Facade for Java简称 slf4j,Java简单日志门面系统.在我们的代码中,不需要显式指定具体日志框架(例如:java.util.logging.logback.log4j),而是使用slf4j的API来记录日志便可,最终日志的格式.记录级别.输出方式等通过具体日志框架的配置来实现,因此可以在应用中灵活切换日志系统.

Spring Cloud Feign 组成和配置

### Feign的组成 | 接口 | 作用 | 默认值 | | ------------ | ------------ | ------------ | | `Feign.Builder` | Feign的入口 | `Feign.Builder` | | `Client` | Feign底层用什么去请求 | **和Ribbon配合时:**`LoadBalancerFeignClient` **不和Ribbon配合时:**`Fgien.Client.Default` | | `Contract`