【java】java自带Logger介绍及支持INFO以下级别的显示的配置

java的java.utils.logging包中包含了一堆由java提供的日志记录功能。
使用方式主要分为两种:

1、基本的全局日志记录功能
例如打印info级别的全局日志:


// 可选的设置打印的日志级别(打印所有级别)
Logger.getGlobal().setLevel(Level.ALL);
// 打印info级别的全局日志
Logger.getGlobal().info("测试日志输出");

2、使用自定义的日志记录
例如:


// 创建一个记录器名为com.lanting.test的自定义日志(这个记录器名有层级关系,例如给记录器名为com.lanting的自定义日志设置属性,也会影响到com.lanting.test)
private static final Logger logger = Logger.getLogger("com.lanting.test");

// 可选,设置打印日志级别(默认打印Info级别及以上的信息)
logger.setLevel(Level.INFO);

// 打印info级别的日志
logger.info("测试info日志");
// 打印warning级别的日志
logger.warning("测试warning日志");

// 也可以这样打印日志
logger.log(Level.INFO,"测试info日志");

其中,日志的级别总共分为7个,由高到低分别为:

  • SERVERE
  • WARNING
  • INFO
  • CONFIG
  • FINE
  • FINER
  • FINEST

但是,默认情况下,只记录前三个级别,如果想要显示INFO级别以下的日志信息,需要单独配置

配置方式记录如下:

1、找到JDK安装目录进入目录:jre/lib,复制logging.properties文件到项目src下。
2、编辑logging.properties文件,找到.Level=INFO这一行(我的是29行),将其改为你想显示的级别,比如:.Level=FINE则是显示FINE及以上的级别,.Level=ALL是显示所有日志。当然,可以设置特定的自定的日志级别,例如com.lanting.Level=INFO则是只对记录器名为“com.lanting”及子记录器的起效。
3、继续找到java.util.logging.ConsoleHandler.level = INFO这一行(我的是43行),同样改成你想要显示的级别,例如改成java.util.logging.ConsoleHandler.level = ALL则是显示所有级别的信息(推荐)。
4、在打印日志之前调用

// 重新加载日志配置文件,logging.properties指的是src下的logging.properties文件
System.setProperty("java.util.logging.config.file","logging.properties");
// 设置过滤打印日志的级别(根据个人情况定)
logger.setLevel(Level.FINE);

//下面的日志都可以正常打印出来
logger.finest("finest级别的日志");
logger.finer("finer级别的日志");
logger.fine("fine级别的日志");
logger.config("config级别的日志");
logger.info("info级别的日志");
logger.warning("警告级别的日志");
logger.severe("servere级别的日志");
logger.logp(Level.INFO,"sourceClass","sourceMethod","测试logp打印");
logger.entering("sourceClass","sourceMethod");
logger.exiting("sourceclass","sourcemethod");

到此为止一切搞定!

猜你喜欢

转载自blog.csdn.net/lantingshuxu/article/details/80528558