在Java Logging Framework中关闭日志消息

时间:2014-12-05 08:57:37

标签: java logging

我正在寻找一种在运行应用程序时关闭特定级别的日志消息的方法。例如,如果向我的应用程序传递debug参数,则应显示带有Level.INFO的日志消息,否则它们不应显示。但是,仍应显示SEVERE级别的日志消息。有没有办法在不使用IF/ELSE语句的情况下执行此操作?感谢

我正在使用Java Logging Framework,如下所示:

logger.log(Level.INFO, "The piece is in the pending queue");

3 个答案:

答案 0 :(得分:3)

Click here找出配置日志。

答案 1 :(得分:1)

您可以按java.util.logging.ConsoleHandler.level=<level>设置日志级别,其中级别代表:

  • 严重(最高价值)
  • 警告
  • INFO
  • CONFIG
  • FINE
  • FINER
  • 最佳(最低价值)

您需要将级别视为堆栈:您可以定义自己的位置,并根据您选择的严重性来编写框架日志。例如,如果您将级别设置为INFO,则会获得严重性SEVEREWARNINGINFO

的日志

答案 2 :(得分:0)

由于有一个名为logger的Logger对象,因此可以使用以下方法设置特定对象的级别:

logger.setLevel(<level>)

但是如果项目中有多个记录器对象,并且您想为所有这些对象设置级别,则可以使用以下内容:

Handler[] handlers
            = Logger.getLogger("").getHandlers();
    for (int index = 0; index < handlers.length; index++) {
        handlers[index].setLevel(<level>);
    }

这些是Hichamov所说的水平

  • 严重(最高价值)
  • 警告
  • INFO
  • CONFIG
  • FINE
  • FINER
  • 最佳(最低价值)