日志(Log)是什么?字典对其的解释是"对某种机器工作情况或某项任务进展情况的记载"。对于应用系统来说,日志就应该记录应用系统的运行状况了。

是否需要记录日志?这个问题无需回答,这是毋庸置疑的--当然要记了。

剩下的问题就是应该如何记录日志才能确保日志具有高可用性和低耗性了。日志信息过于简化,乃至于没有日志,则用户无法找到解决问题所需的信息,进而妨碍问题的解决;然而日志信息过于详细不仅会降低系统的性能而且会使真正有用的信息淹没在文字的海洋中。

为此JDK给出了建议的日志分级标准。将不同的信息根据其重要性分级。与此同时可以根据实际需要在JRE中设置需要记录的日志级别--级别高于此值的日志才被记录。依照JDK提供的标准(java.util.logging.Level)将日志划分为OFF、SEVERE、WARNING、INFO、CONFIG、FINE、FINER、FINEST、ALL等从高到低九个级别。他们都分别对应着唯一的整数值,即OFF=Integer.MAX_VALUE、SEVERE=1000、WARNING=900、INFO=800、CONFIG=700、FINE=500、FINER=400、FINEST=300、ALL=Integer.MIN_VALUE。通过对java.util.logging.Level的泛化(扩展),开发人员可以在JDK提供的标准基础之上定义自己的日志分级标准。

在这九个级别中OFF、SEVERE、WARNING、INFO、CONFIG、ALL比较容易理解。

OFF级别主要用于JRE日志输出控制,表示不输出任何信息。

SEVERE(严重)级别描述组织程序正常运行的重大事件。这些事件的表述必须能够让最终用户和系统管理员清晰地了解到底发生了什么事情。

WARNING(警告)级别描述了最终用户或系统管理员维护时比较感兴趣的事件,或指示系统存在潜在问题的事件。这些事件都需要特别提醒最终用户或系统管理员注意。

INFO(信息)级别主要用于描述输出到控制台或其替代品的,具有相当程度重大意义的事件。譬如系统的心跳信息,以及其他系统希望告知最终用户或系统管理员的信息等。

CONFIG(配置)级别主要用于描述可以辅助调试解决问题的静态配置信息。譬如CPU类型、操作系统类型、内存容量、系统语言等等。

ALL级别也是主要用于JRE日志输出控制,表示输出所有日志信息。

FINE、FINER、FINEST等三个级别被用于描述不同程度的跟踪信息。这三个级别被sun分别翻译为"良好","较好"和"最好",但是笔者认为翻译为"略细","较细","最细"更合适。这三个级别比较容易使人难于区分。到底什么样的信息应该以哪个级别输出呢?

一般说来,FINE级别用于输出开发人员广泛关注的信息。包括小的可恢复的故障,潜在的性能问题、数据源连接不足、服务超时等。

FINER级别描述比FINE级别更详细的信息。包括进入/返回方法调用,抛出了一个异常等信息。

FINEST级别描述更详细的调试信息。包括开发人员在方法内为了调试方便而输出的调试信息,即某些日志分级系统中定义的DEBUG级别信息。

将方法调用/返回信息作为一个单独的级别处理是一个明智的选择。在解决系统运行问题时,通常根据方法调用/返回过程就能大致确定问题所在。

此日志分级标准被广泛地应用于中小型系统中。更详细的信息可以参考JDK

API文档的java.util.logging部分。

java自带日志等级_JDK日志分级相关推荐

  1. C语言编写的一个简单通用的日志框架----支持日志等级,日志颜色,打印到文件等设置

    日常工作中常常需要输出日志进行调试,本文提供了一个C语言编写的日志框架.可以输出日志到文件或者是终端,支持日志等级设置,不同日志等级可以设置不同的颜色,另外还可以设置进程名.模块名.函数名等的输出,能 ...

  2. linux日志服务是哪个,『学了就忘』Linux日志管理 — 2.日志服务rsyslogd

    1.日志文件格式 只要是由日志服务rsyslogd记录的日志文件,他们的格式是一样的. 基本日志格式包含以下内容: 事件产生的时间. 发生事件的服务器的主机名. 产生事件的服务名或程序名. 事件的具体 ...

  3. 【java】java自带的java.util.logging.Logger日志功能

    偶然翻阅到一篇文章,注意到Java自带的Logger日志功能,特地来细细的看一看,记录一下. 1.Java自带的日志功能,默认的配置 ①Logger的默认配置,位置在JRE安装目录下lib中的logg ...

  4. 使用java自带的日志管理_java日志管理

    1.相关概念 日志统一框架(日志门面):apache commons logging.slf4j 日志实现框架(实现层):JDK自带的logging(java.util.logging).log4j. ...

  5. Java自带日志工具java.util.logging.Logger

    java.util.logging.Logger是JDK自带的日志工具类,从1.4版本开始就已经有了.由于log4j等开源的日志组件,这个Logger并没有太多展现机会.但在一些测试性的代码中,JDK ...

  6. Java 程序如何正确地打日志

    本文来自作者 R哥 在 GitChat 上分享 「Java 程序如何正确地打日志」 什么是日志 简单的说,日志就是记录程序的运行轨迹,方便查找关键信息,也方便快速定位解决问题. 我们 Java 程序员 ...

  7. log4cplus使用(二)-自定义日志等级

    log4cplus支持用户自定义日志等级,操作也比较简单,使用之前贴如下宏定义 #define LOG4CPLUS_MACRO_CREASH_LOG_LEVEL(pred) LOG4CPLUS_UNL ...

  8. 写给大忙人的ELK最新版6.2.4学习笔记-Logstash和Filebeat解析(java异常堆栈下多行日志配置支持)...

    接前一篇CentOS 7下最新版(6.2.4)ELK+Filebeat+Log4j日志集成环境搭建完整指南,继续对ELK. logstash官方最新文档https://www.elastic.co/g ...

  9. 安卓日志系统初探(带你了解Android日志系统的概貌)

    目录 1 介绍 2 ADB的原理 2.1 adbd服务进程 2.2 ADB 服务端 2.2.1 USB方式 2.2.2 网络方式 2.2.3串口方式 2.3 ADB 客户端 3 安卓框架中日志的收集和 ...

最新文章

  1. Python学习中的点点滴滴
  2. Markdown语法入门
  3. Redis高可用方案-哨兵模式-SpringBoot整合
  4. php复制xml文件,PHP_php xml文件操作实现代码(二),复制代码 代码如下:?php //创 - phpStudy...
  5. oracle11gasm,oracle11gASM管理
  6. socket网络编程tcp
  7. MyBatis知多少(8)关系型数据库
  8. 用C实现的一个Bash脚本
  9. qt插件开发框架搭建_Flutter框架之:开发环境搭建
  10. c语言 string.h部分常用函数的实现
  11. Linux系统不同主机之间的时间同步
  12. NAT对数据业务的影响
  13. 南宁二中三中高考2021成绩查询,2020年南宁二中三中录取总成绩不低于A
  14. php做个抽签人名,怎样在excel制作一个用于抽签函数,别的工具也行(excel随机抽取人名不重复)...
  15. 爬取哔哩哔哩单个视频
  16. 学习方法-北大学霸(01)学习方法基础
  17. 您的组织策略阻止我们为您完成此操作,有关详细信息,请联系技术支持
  18. Structure SLAM 相关论文阅读(一):消影点/消失点/灭点检测提取
  19. 81192!请返航!
  20. Python分析中国大陆各直辖市及各省省会的平均工资与平均房价 课程报告+源码及数据

热门文章

  1. 疯狂连连看之开发界面布局
  2. 数据改写-数据科学导论
  3. 大数据分析平台如何进行支出跟踪
  4. 大数据分析平台具备什么功能特点
  5. 数组赋偶数值并求出平均值
  6. mysql批量插入跟更新_Mysql批量插入和更新的性能-问答-阿里云开发者社区-阿里云...
  7. AcWing 801. 二进制中1的个数
  8. 2021年北京理工大学ACM CLUB清明节组队训练赛
  9. 太极计算机 审计厅,湖北省审计厅举办2010年春节联欢会
  10. python实现观察者模式_举例讲解Python设计模式编程中的访问者与观察者模式