java自带日志框架打印info以下级别日志

本文为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:\practice\studylogging\logging.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

 

posted @ 2019-11-08 13:16  canger  阅读(5916)  评论(0编辑  收藏  举报