Log4j
日本語 | Java用日誌書き |
英語 | log for Java |
ふりがな | ろぐふぉーじぇい |
フリガナ | ログフォージェイ |
ロガーのひとつ。
ログを出力するためのライブラリ。Jakartaプロジェクトのひとつ。
ログ出力方法をlog4j.xmlというXMLファイルに記述するため最初は使いづらいが、外部設定ファイルに出力方法や出力書式を全て記述できるため、状況に合わせてプログラムを修正することなく変更できるというメリットがある。また、出力先も豊富で使いやすい。
J2SEのLoggerクラスに比べて全般的に使いやすいため、本当に簡易な目的以外ではLog4jを使用した方がいいだろう。
ログを出力するためのライブラリ。Jakartaプロジェクトのひとつ。
ログ出力方法をlog4j.xmlというXMLファイルに記述するため最初は使いづらいが、外部設定ファイルに出力方法や出力書式を全て記述できるため、状況に合わせてプログラムを修正することなく変更できるというメリットがある。また、出力先も豊富で使いやすい。
J2SEのLoggerクラスに比べて全般的に使いやすいため、本当に簡易な目的以外ではLog4jを使用した方がいいだろう。
// Sample.java
import org.apache.log4j.Logger;
/**
* Loggerクラスを使うために、log4j-*.*.*.jarに
* クラスパスを通してください(*はバージョン番号)。
* このjarファイルはLog4jをダウンロードして解凍した中の
* dist/libディレクトリに入っているはずです。
*/
public class Sample
{
/**
* ロガーとして使うフィールド。
* このようにクラス名を渡して、1クラス1ロガーにします。
*/
private static final Logger logger = Logger.getLogger( Sample.class );
public static void main( String[] args )
{
// ログ出力。
logger.error( "エラー。" );
// 15:21:51,062 ERROR Sample (Sample.java:22) - エラー。
// ログの設定は、以下のlog4j.xmlファイルで行います。
}
}
// log4j.xml
// このファイルはクラスファイル(.classファイル)のあるディレクトリ、
// 通常はbinディレクトリに置いてください。
// ↑このコメントはそのファイル内に書かないようにしてください。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>
<!-- 標準出力に出力するappenderを設定します。 -->
<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender"> <!-- コンソールに出力。 -->
<layout class="org.apache.log4j.PatternLayout"> <!-- 文字列で出力フォーマットを設定するクラス。 -->
<param name="ConversionPattern" value="%d{HH:mm:ss,SSS} %p %C (%F:%L) - %m%n"/> <!-- 出力フォーマット。詳しくはPatternLayoutクラスのドキュメントを参照。 -->
</layout>
<filter class="org.apache.log4j.varia.LevelMatchFilter"> <!-- 出力するログレベルとかを設定。 -->
<param name="LevelToMatch" value="INFO"/>
<param name="AcceptOnMatch" value="true"/>
</filter>
</appender>
<root>
<priority value ="debug" /> <!-- 全体の出力レベルを設定。 -->
<appender-ref ref="STDOUT" /> <!-- 上記のappenderのnameを設定。 -->
</root>
</log4j:configuration>
import org.apache.log4j.Logger;
/**
* Loggerクラスを使うために、log4j-*.*.*.jarに
* クラスパスを通してください(*はバージョン番号)。
* このjarファイルはLog4jをダウンロードして解凍した中の
* dist/libディレクトリに入っているはずです。
*/
public class Sample
{
/**
* ロガーとして使うフィールド。
* このようにクラス名を渡して、1クラス1ロガーにします。
*/
private static final Logger logger = Logger.getLogger( Sample.class );
public static void main( String[] args )
{
// ログ出力。
logger.error( "エラー。" );
// 15:21:51,062 ERROR Sample (Sample.java:22) - エラー。
// ログの設定は、以下のlog4j.xmlファイルで行います。
}
}
// log4j.xml
// このファイルはクラスファイル(.classファイル)のあるディレクトリ、
// 通常はbinディレクトリに置いてください。
// ↑このコメントはそのファイル内に書かないようにしてください。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>
<!-- 標準出力に出力するappenderを設定します。 -->
<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender"> <!-- コンソールに出力。 -->
<layout class="org.apache.log4j.PatternLayout"> <!-- 文字列で出力フォーマットを設定するクラス。 -->
<param name="ConversionPattern" value="%d{HH:mm:ss,SSS} %p %C (%F:%L) - %m%n"/> <!-- 出力フォーマット。詳しくはPatternLayoutクラスのドキュメントを参照。 -->
</layout>
<filter class="org.apache.log4j.varia.LevelMatchFilter"> <!-- 出力するログレベルとかを設定。 -->
<param name="LevelToMatch" value="INFO"/>
<param name="AcceptOnMatch" value="true"/>
</filter>
</appender>
<root>
<priority value ="debug" /> <!-- 全体の出力レベルを設定。 -->
<appender-ref ref="STDOUT" /> <!-- 上記のappenderのnameを設定。 -->
</root>
</log4j:configuration>
// Sample.java import org.apache.log4j.Logger; /** * Loggerクラスを使うために、log4j-*.*.*.jarに * クラスパスを通してください(*はバージョン番号)。 * このjarファイルはLog4jをダウンロードして解凍した中の * dist/libディレクトリに入っているはずです。 */ public class Sample { /** * ロガーとして使うフィールド。 * このようにクラス名を渡して、1クラス1ロガーにします。 */ private static final Logger logger = Logger.getLogger( Sample.class ); public static void main( String[] args ) { // ログ出力。 logger.error( "エラー。" ); // 15:21:51,062 ERROR Sample (Sample.java:22) - エラー。 // ログの設定は、以下のlog4j.xmlファイルで行います。 } } // log4j.xml // このファイルはクラスファイル(.classファイル)のあるディレクトリ、 // 通常はbinディレクトリに置いてください。 // ↑このコメントはそのファイル内に書かないようにしてください。 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'> <!-- 標準出力に出力するappenderを設定します。 --> <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender"> <!-- コンソールに出力。 --> <layout class="org.apache.log4j.PatternLayout"> <!-- 文字列で出力フォーマットを設定するクラス。 --> <param name="ConversionPattern" value="%d{HH:mm:ss,SSS} %p %C (%F:%L) - %m%n"/> <!-- 出力フォーマット。詳しくはPatternLayoutクラスのドキュメントを参照。 --> </layout> <filter class="org.apache.log4j.varia.LevelMatchFilter"> <!-- 出力するログレベルとかを設定。 --> <param name="LevelToMatch" value="INFO"/> <param name="AcceptOnMatch" value="true"/> </filter> </appender> <root> <priority value ="debug" /> <!-- 全体の出力レベルを設定。 --> <appender-ref ref="STDOUT" /> <!-- 上記のappenderのnameを設定。 --> </root> </log4j:configuration>