专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

Java.util.logging:JDK自带记录日志类

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/2/17 15:00:24       共计:3648 浏览
每个初学者都很熟悉在有问题的代码中使用 System.out.println 方法在控制台打印消息,来帮助观察程序运行的操作过程。如果你使用  System.out.println 方法,一旦发现问题的根源,就要将这些语句从代码中删去。如果接下来又出现了问题,就需要再插入几个调用 System.out.println 方法的语句,如此反复,增加了工作量。

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

如果要生成简单的日志记录,可以使用全局日志记录器并调用其 info 方法,代码如下:
Logger.getGlobal().info("打印信息");
JDK Logging 把日志分为如下表 7 个级别,等级依次降低。

级别 SEVERE WARNING INFO CONFIG FINE FINER FINEST
调用方法 severe() warning() info() config() fine() finer() finest()
含义 严重 警告 信息 配置 良好 较好 最好

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启动应用程序不会对日志记录器产生任何影响。
版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:物联网是什么?它的应用领域有哪些? | ·下一条:C++ array(STL array)容器用法详解

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有