大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

log4j教程
log4j技術
log4j案例
Log4j2技術
log42j案例
Logback技術
Logback案例

log4j日志記錄級別

log4j日志記錄級別

為了方便對于日志信息的輸出顯示,對日志內容進了分級管理。日志級別由高到低級別如下:org.apache.log4j.Level類提供以下級別,但也可以通過Level類的子類自定義級別。

Level

描述

ALL

各級包括自定義級別

DEBUG

指定細粒度信息事件是最有用的應用程序調試

ERROR

錯誤事件可能仍然允許應用程序繼續運行

FATAL

指定非常嚴重的錯誤事件,這可能導致應用程序中止

INFO

指定能夠突出在粗粒度級別的應用程序運行情況的信息的消息

OFF

這是最高等級,為了關閉日志記錄

TRACE

指定細粒度比DEBUG更低的信息事件

WARN

指定具有潛在危害的情況

為什么要對日志進行分級呢?

無論是將日志輸出到控制臺,還是文件,其輸出都會降低程序的運行效率。但由于調試、運行維護的需要,客戶的要求等等原因,需要進行必要的日志輸出。這時就必須要在代碼中加入日志的輸出語句。

這些輸出語句若在程序運行時全部輸出,則勢必會降低程序運行效率。例如,使用System.out.println()將信息輸出到控制臺,則所有的該輸出語句均將執行。就會大大降低程序的執行效率。而要使其不輸出,唯一的辦法就是將這些語句只能一個一個的全部刪除。這是個費時費力的過程。

將日志信息進行分級管理,便可方便的控制信息輸出內容及輸出的位置:哪些信息需要輸出,哪些信息不需要輸出,只需要在一個日志輸出控制文件中稍加修改即可。而代碼中的輸出語句不用做任何的修改。

從這個角度來說,代碼中的日志編寫,其實就是寫大量的輸出語句。只不過這些輸出語句比較特殊,它們具有級別,在程序運行期間不一定被執行。它們的執行是需要由另外一個文件來控制。

log4j日志級別是如何工作?

級別p的級別使用q,在記錄日志請求時,如果p>=q啟用。這條規則是log4j的核心。它假設級別是有序的。對于標準級別它們關系如下:ALL < DEBUG < INFO < WARN < ERROR < FATAL < OFF。

下面的例子明確指出如何可以過濾所有的DEBUG和INFO消息。這個程序使用記錄并執行setLevel(Level.X)方法來設置所需的日志記錄級別:

這個例子將打印,除了調試和信息的所有消息:

import org.apache.log4j.*;

public class LogClass {

   private static org.apache.log4j.Logger log = Logger

                                    .getLogger(LogClass.class);

   public static void main(String[] args) {

      log.setLevel(Level.WARN);

      log.trace("Trace Message!");

      log.debug("Debug Message!");

      log.info("Info Message!");

      log.warn("Warn Message!");

      log.error("Error Message!");

      log.fatal("Fatal Message!");

   }

}

當編譯并運行LogClass程序會產生以下結果:

Warn Message!

Error Message!

Fatal Message!

用配置文件設置log4j日志級別級別:

Log4j提供這些可以讓程序員自由更改源代碼,改變調試級別的配置級別是基于文件設置。

以下是上面的例子使用 log.setLevel(Level.WARN)方法的配置文件與上面的例子例子功能一樣。

# Define the root logger with appender file

log = /usr/home/log4j

log4j.rootLogger = WARN, FILE

# Define the file appender

log4j.appender.FILE=org.apache.log4j.FileAppender

log4j.appender.FILE.File=${log}/log.out

# Define the layout for file appender

log4j.appender.FILE.layout=org.apache.log4j.PatternLayout

log4j.appender.FILE.layout.conversionPattern=%m%n

現在,使用下面的程序:

import org.apache.log4j.*;

public class LogClass {

   private static org.apache.log4j.Logger log = Logger

                                    .getLogger(LogClass.class);

   public static void main(String[] args) {

      log.trace("Trace Message!");

      log.debug("Debug Message!");

      log.info("Info Message!");

      log.warn("Warn Message!");

      log.error("Error Message!");

      log.fatal("Fatal Message!");

   }

}

現在,編譯和運行上面的程序,得到以下結果在 /usr/home/log4j/log.out 文件:

Warn Message!

Error Message!

Fatal Message!

日志輸出控制文件

Log4j的日志輸出控制文件,主要由三個部分構成:

  • 日志信息的輸出位置:控制日志信息將要輸出的位置,是控制臺還是文件等。
  • 日志信息的輸出格式:控制日志信息的顯示格式,即以怎樣的字符串形式顯示。
  • 日志信息的輸出級別:控制日志信息的顯示內容,即顯示哪些級別的日志信息。

有了日志輸出控制文件,代碼中只要設置好日志信息內容及其級別即可,通過控制文件便可控制這些日志信息的輸出了

全部教程
主站蜘蛛池模板: 亚洲欧美天堂网 | 欧美日韩加勒比一区二区三区 | 久久精品国产免费观看99 | 精品久久久久久久一区二区手机版 | 91在线视频网址 | 亚色视频在线观看 | 久草在线手机 | 国产成+人+亚洲+欧美综合 | 香蕉亚洲精品一区二区 | 亚洲欧美精品一区二区 | 久草在线最新视频 | 国产日韩欧美亚洲综合在线 | 欧美99| 伊人黄网 | 欧美日韩国产成人综合在线 | 亚洲性生活 | 九九综合九九综合 | 亚洲精品国产精品乱码不卞 | 99久久免费看精品国产一区 | 久久国产免费福利资源网站 | 久久久噜久噜久久gif动图 | 亚洲综合资源 | 国产欧美一区二区三区观看 | a毛片在线观看 | 四虎影视库国产精品一区 | 视频一区在线播放 | 久久综合九色欧美综合狠狠 | 久久精品久久精品国产大片 | 在线观看中文字幕亚洲 | 国产高清精品一级毛片 | 免费高清a毛片 | 福利视频欧美一区二区三区 | 2021久久精品99精品久久 | 台湾亚洲精品一区二区tv | 国产精品98视频全部国产 | 久久99热精品免费观看无卡顿 | 中文字幕日韩欧美一区二区三区 | 亚洲国产一区二区三区四区 | 国产福利一区二区在线观看 | 成人91视频 | 香蕉依依精品视频在线播放 |