gpt4 book ai didi

Java 日志记录似乎不适用于 FINE/FINER/FINEST 级别

转载 作者:行者123 更新时间:2023-12-02 04:28:25 25 4
gpt4 key购买 nike

我正在使用java.util.logging来执行不同级别的日志记录。我的问题是我无法获得级别 FINE/FINER/FINEST 来显示任何输出。我见过类似的线程( Why are the Level.FINE logging messages not showing? ),但它似乎并没有解决我的问题。我有以下主要类(class):

package logtest;

import java.util.logging.Logger;

public class Main {


private static final Logger LOGGER = Logger.getLogger(Main.class.getName());

public static void main(String[] args) {
LOGGER.info("info");
LOGGER.severe("severe");
LOGGER.fine("fine");
}

}

在我的项目根目录中的文件src/logtest/Main.java和文件logging.properties中:

.handlers = java.util.logging.ConsoleHandler

java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

我像这样执行生成的二进制文件(在 bin/logtest 中):

java -Djava.util.logging.config.file=logging.properties -classpath bin logtest.Main

我得到了这个结果(观察到 FINE 消息丢失了):

Aug 05, 2015 6:13:04 PM logtest.Main main
INFO: info
Aug 05, 2015 6:13:04 PM logtest.Main main
SEVERE: severe

有趣的是,如果我将条目java.util.logging.ConsoleHandler.level更改为SEVERE,第一条消息就会消失:

Aug 05, 2015 6:14:09 PM logtest.Main main
SEVERE: severe

所以我知道该文件已被正确读取和解释。但我就是无法在控制台上显示 FINE 日志消息(顺便说一句,使用 openjdk-8)。关于原因有什么想法吗?

最佳答案

您已更改处理程序的级别,但未更改记录器的级别。您需要同时执行这两项操作。

您可以在代码中执行此操作:

LOGGER.setLevel(Level.FINE);

或者,您可以从属性文件中读取设置。要修改默认日志记录级别,您可以添加:

.level=FINE

您可以通过添加以下行来指定自己的记录器的日志记录级别:

com.mycompany.myapp.level=FINE

关于Java 日志记录似乎不适用于 FINE/FINER/FINEST 级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31837800/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com