理解正确的日志输出级别

原文链接:http://macrochen.iteye.com/blog/1399082

很多程序员都忽略了日志输出级别, 甚至不知道如何指定日志的输出级别. 相对于System.out来说, 日志框架有两个最大的优点就是可以指定输出类别(category)和级别(level). 对于日志输出级别来说, 下面是我们应该记住的一些原则:
ERROR:系统发生了严重的错误, 必须马上进行处理, 否则系统将无法继续运行. 比如, NPE, 数据库不可用等.

WARN:系统能继续运行, 但是必须引起关注. 对于存在的问题一般可以分为两类: 一种系统存在明显的问题(比如, 数据不可用), 另一种就是系统存在潜在的问题, 需要引起注意或者给出一些建议(比如, 系统运行在安全模式或者访问当前系统的账号存在安全隐患). 总之就是系统仍然可用, 但是最好进行检查和调整.

INFO:重要的业务逻辑处理完成. 在理想情况下, INFO的日志信息要能让高级用户和系统管理员理解, 并从日志信息中能知道系统当前的运行状态. 比如对于一个机票预订系统来说, 当一个用户完成一个机票预订操作之后, 提醒应该给出"谁预订了从A到B的机票". 另一个需要输出INFO信息的地方就是一个系统操作引起系统的状态发生了重大变化(比如数据库更新, 过多的系统请求).

DEBUG:主要给开发人员看, 下面会进一步谈到.

TRACE: 系统详细信息, 主要给开发人员用, 一般来说, 如果是线上系统的话, 可以认为是临时输出, 而且随时可以通过开关将其关闭. 有时候我们很难将DEBUG和TRACE区分开, 一般情况下, 如果是一个已经开发测试完成的系统, 再往系统中添加日志输出, 那么应该设为TRACE级别.

以上只是建议, 你也可以建立一套属于你自己的规则. 但是一套良好的日志系统, 应该首先是能根据情况快速灵活的调整日志内容的输出.

时间: 2024-08-26 05:16:14

理解正确的日志输出级别的相关文章

log4j日志输出级别高低

Log4j是Apache的开源项目一个功能强大的日志组件,提供方便的日志记录.日志记录器(Logger)是日志处理的核心组件Log4j建议只使用四个级别,优先级从高到低分别是FATAL, ERROR.WARN.INFO.DEBUG.通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关.比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来.程序会打印高于或等于所设置级别的日志,设置的日志等级越高,打印出来的日志就越少.如果设置级别为INFO,则优先级

log4j日志输出级别

log4j定义了8个级别的log(除去OFF和ALL 可以说分为6个级别), * 优先级从高到低依次为:OFF FATAL ERROR WARN INFO DEBUG TRACE ALL * * ALL 最低等级的 用于打开所有日志记录 * TRACE 很低的日志级别 一般不会使用 * DEBUG 指出细粒度信息事件对调试应用程序是非常有帮助的 主要用于开发过程中打印一些运行信息 * INFO 消息在粗粒度级别上突出强调应用程序的运行过程 * 打印一些你感兴趣的或者重要的信息 这个可以用于生产环

安卓日志输出-logger

在安卓开发过程中,日志的打印是必不可少的,下面向大家推荐一个Github上的开源日志框架-logger 优势 日志所在线程.类.方法的准确定位及相关信息展示 打印输出格式美观 支持Json及xml格式打印输出 支持从打印信息跳转至对应代码 多种日志输出级别(.d .e .w .v) 添加引用 Android Studio-Gradle compile 'com.orhanobut:logger:1.11' Eclipse 下载地址在此 代码 简单输出示例 Logger.d("hello"

c++ 日志输出库 spdlog 简介(2)

继续上一篇,example.cpp解析. 1.set_pattern 自定义日志格式 官方参考:https://github.com/gabime/spdlog/wiki/3.-Custom-formatting 可以为所有的log制定格式,也可以为指定的log制定格式,注意下面代码中rotating_logger为指针变量. auto rotating_logger = spd::rotating_logger_mt("some_logger_name", "logs/ro

Logback 整合 RabbitMQ 实现统一日志输出

原文地址:Logback 整合 RabbitMQ 实现统一日志输出 博客地址:http://www.extlight.com 一.前言 公司项目做了集群实现请求分流,由于线上或多或少会出现请求失败或系统异常,为了查看失败请求的日志信息,我们得将所有服务的日志文件都打开来进行问题的定位分析,操作起来非常麻烦.因此,我们开发组决定设计一套日志查看系统来解决上述问题. 二.实现思路 默认的,应用服务日志信息会保存在本地服务器的目录中,为了方便查看日志我们应该把多台服务器日志统一输出到一个日志文件中.

【Java】【16】log4j日志的输出级别

正文:日志输出的级别,主要有以下几种:(1)ALL:打印各级日志信息包括自定义级别(2)TRACE:最详细的信息.一般这些信息只记录到日志文件中.自版本1.2.12[3](3)DEBUG:流经系统的详细信息.一般这些信息只记录到日志文件中(4)INFO:令人感兴趣的运行时事件(启动/关闭).一般这些信息将立即呈现在状态控制台上,因而要保守使用,并保持到最低限度.(5)WARN:使用已过时的API,API的滥用,潜在错误,其他不良的或意外的运行时的状况(但不一定是错误的).一般这些信息将立即呈现在

.NET Core的日志[2]:将日志输出到控制台

对于一个控制台应用,比如采用控制台应用作为宿主的ASP.NET Core应用,我们可以将记录的日志直接输出到控制台上.针对控制台的Logger是一个类型为ConsoleLogger的对象,ConsoleLogger对应的LoggerProvider类型为ConsoleLoggerProvider,这两个类型都定义在 NuGet包"Microsoft.Extensions.Logging.Console"之中. 本文已经同步到<ASP.NET Core框架揭秘>之中] 目录一

Mybatis for .net 的日志输出

目前mybatis for .net 可以支持对外的日志输出包括SQL语句和参数等信息,用于调试,目前支持的输出方式有三种 具体的mybatis的引用和使用方式不再本文的讨论范围 1.命令窗口的输出 命令窗口的输出比较乱,因为限于窗口的大小,SQL比较长的时候显示就比较乱了,具体的实现方式,是添加config文件,app.config或者web.config 第一步:添加应用程序配置文件 第二步:在configuration节点下添加如下节点 <configSections> <sect

ASP.NET Core 2.1 : 十二.内置日志、使用Nlog将日志输出到文件

应用离不开日志,虽然现在使用VS有强大的调试功能,开发过程中不复杂的情况懒得输出日志了(想起print和echo的有木有),但在一些复杂的过程中以及应用日常运行中的日志还是非常有用. ASP.NET Core提供了内置的日志,但没弄明白这么把它输出到文件, 只能在VS的输出中查看, 谁知道怎么弄告诉我一下.(ASP.NET Core 系列目录) 本例 GitHub 一.内置日志的使用 上一篇:如何在后台运行一个任务  中使用到了内置的日志,直接在构造中注入一下,然后直接使用即可, 非常方便 pu