Log4j-logging-levels
提供:Dev Guides
log4j-ロギングレベル
*org.apache.log4j.Level* レベル。 *Level* クラスをサブクラス化して、カスタムレベルを定義することもできます。
Level | Description |
---|---|
ALL | All levels including custom levels. |
DEBUG | Designates fine-grained informational events that are most useful to debug an application. |
INFO | Designates informational messages that highlight the progress of the application at coarse-grained level. |
WARN | Designates potentially harmful situations. |
ERROR | Designates error events that might still allow the application to continue running. |
FATAL | Designates very severe error events that will presumably lead the application to abort. |
OFF | The highest possible rank and is intended to turn off logging. |
TRACE | Designates finer-grained informational events than the DEBUG. |
レベルはどのように機能しますか?
レベルが q のロガー内のレベルが p のログ要求は、p> = qの場合、*有効*です。 このルールは、log4jの中心にあります。 レベルが順序付けられていることを前提としています。 標準レベルでは、ALL <DEBUG <INFO <WARN <ERROR <FATAL <OFFです。
次の例は、すべてのDEBUGおよびINFOメッセージをフィルタリングする方法を示しています。 このプログラムは、ロガーメソッドsetLevel(Level.X)を使用して、必要なログレベルを設定します。
この例では、DebugとInfoを除くすべてのメッセージを出力します。
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には、デバッグレベルを変更するときにソースコードを変更しないようにする設定ファイルベースのレベル設定が用意されています。
以下は、上記の例で* 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!