本文为CSDN博主「LanTingShuXu」的原创文章,原文链接:https://blog.csdn.net/LanTingShuXu/article/details/80528558
java.utils.logging
包提供了日志功能
使用方式主要分为两种
- 基本的全局日志记录功能,例如打印info级别的全局日志
// 可选的设置打印的日志级别(打印所有级别) Logger.getGlobal().setLevel(Level.ALL); // 打印info级别的全局日志 Logger.getGlobal().info("测试日志输出");
- 使用自定义的日志记录
Logger logger = Logger.getLogger("JUL"); logger.setLevel(Level.INFO); logger.severe("JUL severe"); logger.warning("JUL warning"); logger.info("JUL info"); logger.config("JUL config"); logger.fine("JUL fine"); logger.finer("JUL finer"); logger.finest("JUL finest");
日志的级别
总共分为7个,由高到低分别为:
- SERVERE
- WARNING
- INFO
- CONFIG
- FINE
- FINER
- FINEST
设置显示info以下级别的日志
默认情况下,只记录前三个级别,上文自定义logger代码是没有config及以下级别的日志输出的。如果想要显示INFO级别以下的日志信息,需要单独配置。配置方式如下
- 找到JDK安装目录进入目录:jre/lib,复制logging.properties文件到项目src下
-
编辑logging.properties文件,找到.Level=INFO这一行(我的是29行),将其改为你想显示的级别,比如:.Level=FINE则是显示FINE及以上的级别,.Level=ALL是显示所有日志。当然,可以设置特定的自定的日志级别,例如com.lanting.Level=INFO则是只对记录器名为“com.lanting”及子记录器的起效
- 继续找到
java.util.logging.ConsoleHandler.level = INFO
这一行(我的是43行),同样改成你想要显示的级别,例如改成java.util.logging.ConsoleHandler.level = ALL
则是显示所有级别的信息(推荐 - 在获取日志对象前设置 系统属性 java.util.logging.config.file
System.setProperty("java.util.logging.config.file",System.getProperty("user.dir")+"\logging.properties");
- 或者在启动时设置参数
-Djava.util.logging.config.file=F:practicestudylogginglogging.properties
然后就能够输出info以下级别的日志了
输出日志到文件
logging.properties文件中默认只配置了ConsoleHandler,也就是不会生成日志文件,需要更改成如下配置
# To also add the FileHandler, use the following line instead. handlers= java.util.logging.FileHandler, java.util.logging.ConsoleHandler
每种handler都可以设置自己的日志输出级别,如果不设置,则采用“.LEVEL”配置的值
.level= ALL
# default file output is in user's home directory. java.util.logging.FileHandler.pattern = ./java%u.log java.util.logging.FileHandler.limit = 50000 java.util.logging.FileHandler.count = 1 java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter # Limit the message that are printed on the console to INFO and above. java.util.logging.ConsoleHandler.level = ALL java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter