Java如何设置Logger日志级别?

在此示例中,您将看到我们如何更改或设置Logger日志级别。日志级别将告诉您Logger将记录哪个特定的日志消息。

Logger如果级别等于或高于级别,则仅记录日志消息Logger。例如,当级别设置Level.SEVERE为时,除以记录的消息外Logger.severe(String message),Logger.log(Level level, String message)将不记录任何消息。

package org.nhooo.example.util.logging;

import java.util.logging.Logger;
import java.util.logging.Level;

public class LogLevelSetting {
    // 获取一个Logger实例,如果该实例尚不存在,它将创建一个实例。
    private static Logger logger = Logger.getLogger(LogLevelSetting.class.getName());

    public static void main(String[] args) {
        // 将日志级别设置为Level.INFO,将记录严重消息。
        logger.setLevel(Level.INFO);
        logger.severe("This message will be logged.");

        // 将日志级别设置为“ Level.SEVERE”,警告消息不会
        // 记录为Level.WARNING小于Level.SEVERE
        logger.setLevel(Level.SEVERE);
        logger.warning("This message won't be logged.");

        // 轮到日志了,将不会记录任何消息。
        logger.setLevel(Level.OFF);
        logger.info("All log is turned off.");

        // 重新打开记录器,这将导致所有对应的
        // 下面的记录器消息将被记录。
        logger.setLevel(Level.ALL);
        logger.info("Information message.");
        logger.warning("Warning message.");
        logger.severe("Severe message.");
    }
}

如果我们运行上面的程序,将显示以下结果:

29 Apr 09 10:06:50 org.nhooo.example.util.logging.LogLevelSetting main
SEVERE: This message will be logged.
29 Apr 09 10:06:50 org.nhooo.example.util.logging.LogLevelSetting main
INFO: Information message.
29 Apr 09 10:06:50 org.nhooo.example.util.logging.LogLevelSetting main
WARNING: Warning message.
29 Apr 09 10:06:50 org.nhooo.example.util.logging.LogLevelSetting main
SEVERE: Severe message.

在上面的结果中,我们看到"This message won't be logged."未显示。