2014-12-05 97 views
1

我正在寻找一种方法来在运行应用程序时关闭特定级别的日志消息。例如,如果向我的应用程序传递debug参数,则应该显示带有Level.INFO的日志消息,否则应该不显示。但是,仍应显示SEVERE级别的日志消息。有没有办法做到这一点,而不使用IF/ELSE陈述?由于关闭Java日志框架中的日志消息

我使用的Java日志框架是这样的:

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

回答

0

至于有以下方法Logger对象命名记录器可以用来设置特定对象的级别:

logger.setLevel(<level>) 

但是,如果你在一个项目中的多个记录的对象,你要设置的级别为所有的人都可以使用以下方法:

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

在这些是个E水平作为Hichamov阐明

  • 严重(最高值)
  • 警告
  • INFO
  • CONFIG
  • FINE
  • FINER
  • FINEST(最低值)
1

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

  • 重度(最大值)
  • 警告
  • 信息
  • CONFIG
  • FINE
  • FINER
  • FINEST (最低值)

您需要像堆栈一样对待级别:您可以定义站点的位置,并根据您选择的严重性写入日志。例如,如果您设置级别INFO你会得到的日志严重性SEVEREWARNINGINFO