gpt4 book ai didi

java - 如何完全禁用 JAudioTagger 记录器

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:32:40 25 4
gpt4 key购买 nike

一直在用JAudioTagger现在图书馆 2 年了,我不知道如何禁用它的记录器。

又问了项目主:https://bitbucket.org/ijabz/jaudiotagger/issues/257/how-to-disable-jaudio-tagger-logger

What i have tried ? ( No luck )

Logger.getLogger("org.jaudiotagger").setLevel(Level.OFF);
Logger.getLogger("org.jaudiotagger.tag").setLevel(Level.OFF);
Logger.getLogger("org.jaudiotagger.audio.mp3.MP3File").setLevel(Level.OFF);
Logger.getLogger("org.jaudiotagger.tag.id3.ID3v23Tag").setLevel(Level.OFF);

现在我只是从应用程序中禁用了 Logger,但我需要它,我该怎么办?由于大量的 JAudioTagger 消息,控制台几乎无法使用。

Temporary Solution ( I need the logger for the application though ...)

LogManager.getLogManager().reset();

我已经搜索了所有网络,我找不到解决方案,好像已经 2 年了......这就是我在这里问的原因。


解决方案 27/06/2018 对于感兴趣的人:)

static {

//Disable loggers
pin = new Logger[]{ Logger.getLogger("org.jaudiotagger") };

for (Logger l : pin)
l.setLevel(Level.OFF);
}

最佳答案

你必须 hold a strong reference to your loggers .否则,当记录器被垃圾收集时,您的级别更改将被忽略。

记录器名称需要与 JAudioTagger 中使用的记录器相匹配。您可以通过查看源代码找到记录器名称。否则,更改 format of the SimpleFormatter包括 logger name这是 %3$s(javadoc 差了一个)。当你运行你的程序时,这将列出你需要关闭的记录器名称。

使用 formatter test program以确保您的格式属性配置正确。您的模式可以像上面的模式一样简单,也可以像 %1$tH:%1$tM:%1$tS.%1$tL - [%3$s] -[% 4$s] %5$s%n

另一种选择是在程序退出之前添加代码以列出所有记录器。

private static void findFormatters() {
final LogManager manager = LogManager.getLogManager();
synchronized (manager) {
final Enumeration<String> e = manager.getLoggerNames();
while (e.hasMoreElements()) {
System.out.println(e.nextElement());
}
}
}

JConsole还可以列出所有 Activity 的记录器。

关于java - 如何完全禁用 JAudioTagger 记录器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50778442/

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