首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何完全禁用JAudioTagger记录器

如何完全禁用JAudioTagger记录器
EN

Stack Overflow用户
提问于 2018-06-10 04:53:28
回答 2查看 520关注 0票数 5

我已经使用JAudioTagger库2年了,我不知道如何关闭它的记录器。

我还询问了项目的所有者:https://bitbucket.org/ijabz/jaudiotagger/issues/257/how-to-disable-jaudio-tagger-logger

我已经尝试了什么?(不走运)

代码语言:javascript
复制
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消息。

临时解决方案(我需要应用程序的记录器...)

代码语言:javascript
复制
LogManager.getLogManager().reset();

我已经搜索了所有的网络,我找不到一个像两年前那样的解决方案……这就是我在这里问的原因。

面向感兴趣的用户的Solution 27/06/2018 :)

代码语言:javascript
复制
static {

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

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

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-10 06:32:47

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

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

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

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

代码语言:javascript
复制
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还可以列出所有活动的记录器。

票数 3
EN

Stack Overflow用户

发布于 2019-04-30 22:28:05

您可以为jaudiotagger库中使用的java.util.logging定义配置

代码语言:javascript
复制
static {
    java.util.logging.LogManager manager = java.util.logging.LogManager.getLogManager();
    try {
        manager.readConfiguration(new FileInputStream("audioLogger.properties"));
    } catch (IOException ignored) {}
}

然后在指定的属性文件中配置日志记录。

代码语言:javascript
复制
handlers=java.util.logging.ConsoleHandler
org.jaudiotagger.level=OFF
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50778442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档