无法使用Java Logging API记录INFO日志级别以下的任何内容

时间:2012-03-18 05:45:40

标签: java logging java.util.logging

我设置(记录器类构造函数)日志记录如下 -

 Log() {


        loggerObj = Logger.getLogger("");

        //Create console handler and set its level and then setup its formatter 
        handler = new ConsoleHandler();
        handler.setLevel(Level.FINEST);
        formatter = new LogFormatter();
        handler.setFormatter(formatter);

        //assign handler to logger objs
        loggerObj.setUseParentHandlers(false);
        loggerObj.addHandler(handler);

    }

Log类的成员是 -

    static Logger loggerObj;
    ConsoleHandler handler;
    LogFormatter formatter;

即使我将level设置为FINEST并将setUseParentHandlers设置为false,为什么我无法在INFO下面记录任何内容?

编辑 - 根据评论 - 在我修改全局logging.properties文件并将级别设置为ALL之后,它工作正常。所以我认为我的问题是为什么setUseParentHandlers无效?

2 个答案:

答案 0 :(得分:2)

  

所以我认为我的问题是为什么setUseParentHandlers无效?

没有证据表明setUseParentHandlers无效。

相反,似乎正在发生的事情是您的Logger是使用默认级别INFO创建的。尝试通过调用Logger.setLevel(FINEST)手动设置。

答案 1 :(得分:1)

如勘误表中所述,setUseParentHandlers指定是否以递归方式向日志树中发送数据。除非您明确地不希望日志消息传播到父日志消息的记录器,否则该命令不应该影响它们在单个调用的上下文中的行为方式。