每个初学者都很熟悉在有问题的代码中使用 System.out.println 方法在控制台打印消息,来帮助观察程序运行的操作过程。如果你使用 System.out.println 方法,一旦发现问题的根源,就要将这些语句从代码中删去。如果接下来又出现了问题,就需要再插入几个调用 System.out.println 方法的语句,如此反复,增加了工作量。

日志用来记录程序的运行轨迹,方便查找关键信息,也方便快速定位解决问题。下面介绍 Java 自带的日志工具类 java.util.logging 的使用。

如果要生成简单的日志记录,可以使用全局日志记录器并调用其 info 方法,代码如下:

Logger.getGlobal().info("打印信息");

JDK Logging 把日志分为如下表 7 个级别,等级依次降低。

Logger 的默认级别是 INFO,比 INFO 级别低的日志将不显示。Logger 的默认级别定义在 jre 安装目录的 lib 下面。

# Limit the message that are printed on the console to INFO and above.
java.util.logging.ConsoleHandler.level = INFO

所以在默认情况下,日志只显示前三个级别,对于所有的级别有下面几种记录方法:

logger.warning(message);
logger.fine(message);

同时,还可以使用 log 方法指定级别,例如:

logger.log(Level.FINE, message);

例 1

public class Test {private static Logger log = Logger.getLogger(Test.class.toString());public static void main(String[] args) {// 级别依次升高,后面的日志级别会屏蔽之前的级别log.finest("finest");log.finer("finer");log.fine("fine");log.config("config");log.info("info");log.warning("warning");log.severe("server");}
}

输出结果为:

十一月 27, 2019 5:13:05 下午 Test.Test main
信息: info
十一月 27, 2019 5:13:05 下午 Test.Test main
警告: warning
十一月 27, 2019 5:13:05 下午 Test.Test main
严重: server

可以使用 setLevel 方法设置级别,例如logger.setLevel(Level.FINE);可以将 FINE 和更高级别的都记录下来。另外,还可以使用 Level.ALL 开启所有级别的记录,或者使用 Level.OFF 关闭所有级别的记录。

注意:如果将记录级别设计为 INFO 或者更低,则需要修改日志处理器的配置。默认的日志处理器不会处理低于 INFO 级别的信息。

修改日志管理器配置

可以通过编辑配置文件来修改日志系统的各种属性。在默认情况下,配置文件存在于 jre 安装目录下“jre/lib/logging.properties”。要想使用另一个配置文件,就要将 java.util.logging.config.file 特性设置为配置文件的存储位置,并用下列命令启动应用程序。

java -Djava.util.logging.config.file = configFile MainClass

日志管理器在 JVM 启动过程中初始化,这在 main 执行之前完成。如果在 main 中调用System.setProperty(“java.util.logging.config.file”,file),也会调用LogManager.readConfiguration()来重新初始化日志管理器。

要想修改默认的日志记录级别,就需要编辑配置文件,并修改以下命令行。

.level=INFO

可以通过添加以下内容来指定自己的日志记录级别

Test.Test.level=FINE

也就是说,在日志记录器名后面添加后缀 .level。

在稍后可以看到,日志记录并不将消息发送到控制台上,这是处理器的任务。另外,处理器也有级别。要想在控制台上看到 FINE 级别的消息,就需要进行下列设置。

java.util.logging.ConsoleHandler.level=FINE

注意:在日志管理器配置的属性设置不是系统属性,因此,用 -Dcom.mycompany.myapp.level=FINE启动应用程序不会对日志记录器产生任何影响。

1.17 Java.util.logging:JDK自带记录日志类相关推荐

  1. JDK自带的日志java.util.logging解析

    java.util.logging:JDK标准库中的类,是JDK 1.4 版本之后添加的日志记录的功能包. log4j:最强大的记录日志的方式.可以通过配置 .properties 或是 .xml 的 ...

  2. java logging包_用JDK中提供的java.util.logging.*包创建Logger对象----原创

    由于项目中用到了Applet与Servlet之间(客户端用Applet.Server端用Servlet)的通信,要求: 1:>客户端与服务端必须出Log. 2:>浏览器在加载Applet时 ...

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

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

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

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

  5. JetBrains 宣布:IntelliJ 平台彻底停用 Log4j 组件,建议切换至 java.util.logging

    欢迎关注方志朋的博客,回复"666"获面试宝典 来源:segmentfault.com/a/1190000041400202 近日,JetBrains 官方博客发文宣布:Intel ...

  6. java logging 格式化_Spring源码使用java.util.logging打印日志

    初记于2020/9/16日晚间不加班.前几天搭建了gradle下spring5.1系列源码,发现跑起来也没有框架任何日志打印,看到spring中有个模块为spring-jcl, 联想到JUL(java ...

  7. java.util.logging.Logger基础教程

    java.util.logging.Logger基础教程 @(JAVA)[java] 从JDK1.4开始即引入与日志相关的类java.util.logging.Logger,但由于Log4J的存在,一 ...

  8. java.util.logging log4j,Java核心代碼(十)日志log4j,java.util.logging,commons-logging

    1,概述 org.apache.log4j.Logger //1996就有了,之后不斷完善 Java.util.logging //2000年發布接口,2002(JDK1.4)才有實現類 common ...

  9. tomcat 日志 java util logging Logger使用 (一)

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 1:ja ...

最新文章

  1. golang atomic 32位机器问题
  2. 问题-Delphi2007编译时提示内存错误“sxs.dll. No Debug Info.ACCESS 0xXXXXX
  3. python nodemcu_NodeMCU简介与快速入门
  4. python画方波_今天学会傅里叶画画,明天就是初音未来 - 如何用Python和Blender画任意图形...
  5. python websocket库有什么_常用Python爬虫与Web开发库有哪些?
  6. 网络传输中利用fastjson将复杂嵌套数据类型Json格式转换(GeoJsonPolygon)
  7. Leetcode之两棵二叉搜索树中的所有元素
  8. nullnullHuge Pages
  9. Python 人脸识别系统
  10. 如何加水印在图片上面?
  11. matlab数据导出wps,怎么把金山WPS表格的数据导入MATLAB/
  12. 强化学习王者荣耀项目修改
  13. 电脑计算机在哪里关闭杀毒模式,电脑一开杀毒软件就关闭的解决方法
  14. byref和byval区别的正确理解
  15. C++面向对象学习之路(一)类与对象
  16. 图像质量评价数据库TID2013连接
  17. 我的世界核电工艺量子计算机,我的世界工业2模组核电教程之搭建反应堆
  18. Linux 网络命名空间
  19. 编写一个将用户输入的信息输出到网页的js程序 和 用if else验证用户输入的密码是否正确(两个代码)
  20. R中install_github中无法安装遇到的问题与解决方法

热门文章

  1. DL框架:主流深度学习框架(TensorFlow/Pytorch/Caffe/Keras/CNTK/MXNet/Theano/PaddlePaddle)简介、多个方向比较、案例应用之详细攻略
  2. 安装nvidia-docker2
  3. Python封装发送信息到钉钉群
  4. win10下使用wget
  5. solr研磨之facet
  6. [BZOJ1984] 月下“毛景树”
  7. 习题11.6 fill_n
  8. 蓝牙协议分析(6)_BLE地址类型(蜗窝科技)
  9. java netfox_SpringFox集成原理
  10. STL源代码分析(ch2 内存分配)uninitialized_fill_n