44
47

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Log4jでよく使う設定

Last updated at Posted at 2014-01-11

出力先

よくつかうのはこのパターン。

  • アプリケーションのログは、DEBUG以上のログを標準出力へ出力する。*1
  • アプリケーション以外のログは、INFO以上のログを標準出力へ出力する。
  • INFO以上のログをファイルへ出力する。
  • ERRORログは、INFOログとは別のファイルへ出力する。*2

*1 APサーバやライブラリのログをDEBUG出力すると膨大な量となり、アプリケーションのログが埋もれるので、INFOで出力する。

*2 人・監視ツールがエラー発生を検知しやすいように。

ファイル出力仕様

ファイルのローテーションは、「日付」か「ファイルサイズ」によるローテーションがあるが、日付だとファイルサイズが膨大となる可能性があるので、サイズによるローテーションを使用している。

  • ファイルサイズ :10MB
  • 保持期間 :10世代
  • Encoding :UTF-8

log4j.xmlの設定

log4j.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd">
<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>
<!-- ============= Appender ============= -->

    <!-- 標準出力用Appender -->
    <appender name="Console_Appender" class="org.apache.log4j.ConsoleAppender">
        <param name="Target" value="System.out"/>
        <param name="ImmediateFlush" value="true"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%-5p %d [%t] %m%n" />
        </layout>
    </appender>

    <!-- 処理ログ ファイル出力用Appender -->
    <appender name=“Process_File_Appender” class="org.apache.log4j.RollingFileAppender">
        <param name="File" value="/var/log/app/info.log" />
        <param name="MaxBackupIndex" value="10" />
		<param name="MaxFileSize" value="10MB" />
		<param name="Append" value="true" />
        <param name="Encoding" value="UTF-8" />
        <param name="Threshold" value=“INFO” />
        <layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="%d{yyyy/MMM/dd HH:mm:ss.SSS} [%-5p] %m%n" />
        </layout>
    </appender>

    <!-- エラーログ 用Appender -->
    <appender name=“Error_File_Appender" class="org.apache.log4j.RollingFileAppender">
        <param name="File" value="/var/log/app/error.log" />
        <param name="MaxBackupIndex" value="10" />
		<param name="MaxFileSize" value="10MB" />
		<param name="Append" value="true" />
        <param name="Encoding" value="UTF-8" />
        <param name="Threshold" value="ERROR" />
        <layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="%d{yyyy/MMM/dd HH:mm:ss.SSS} [%-5p] %m%n" />
        </layout>
    </appender>

<!-- ============= Logger ============= -->

	<!-- root Logger
		1. すべてのクラスのINFOログを標準出力へ出力する。
		2. すべてのクラスのINFOログをファイルへ出力する。
		3. すべてのクラスのERRORログをエラーファイルへ出力する。
	-->
    <root>
        <level value="info"/>
		 <appender-ref ref="Console_Appender" />
	 	 <appender-ref ref="Process_File_Appender" />
		 <appender-ref ref="Error_File_Appender" />
    </root>

	<!-- アプリケーション Logger
		アプリケーションのパッケージ配下のクラスは、DEBUG以上を標準出力へ出力する。(nameにはアプリケーションのルートパッケージを指定)
    	root Loggerの設定を引き継ぐため、additivity=trueにしておく
	-->
	<category name="jp.co.app” additivity=“true”>
		<level value=“debug” />
		<appender-ref ref=“Console_Appender“ />
	</category>

</log4j:configuration>

たまに使う設定

特定のパッケージ(クラス)だけ、個別のファイルへ出力する

メール送信ログや他システムへのインタフェース処理ログなどは、確認しやすいように他の処理とは別のログへ出力する時がある。

logj.xml

    <!-- メールログ出力用Appender -->
    <appender name=“Mail_File_Appender” class="org.apache.log4j.RollingFileAppender">
        <param name="File" value="/var/log/app/sendMail.log" />
        <param name="MaxBackupIndex" value="10" />
		<param name="MaxFileSize" value="10MB" />
		<param name="Append" value="true" />
        <param name="Encoding" value="UTF-8" />
        <param name="Threshold" value=“INFO” />
        <layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="%d{yyyy/MMM/dd HH:mm:ss.SSS} [%-5p] %m%n" />
        </layout>
    </appender>

	<!-- Send Mail Logger
		メール出力パッケージを指定し、メールログ出力用Appenderを指定する。
    -->
	<category name=“jp.co.app.mail” additivity=“true”>
		<level value=“info” />
		<appender-ref ref="Mail_File_Appender" />
	</category>
44
47
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
44
47

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?