2014-12-05 159 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