このセクションでは、ログ メカニズムの設定例についていくつか説明します。

複数ファイルへのログ メッセージの書き込み

この例では、警告メッセージとエラー メッセージのみを 2 つのファイルに書き込みます。2 つのファイル ライターを設定します。1 つは警告用で、1 つはエラー用です。次の図は、この構成を示します。

これらのステートメントによって、警告メッセージを warning.log というファイルに、エラー メッセージを error.log というファイルに書き込むプロパティが定義されます。既定のプロパティ設定への変更は太字で示します。変更をコメントによって説明します。

logging.class=allaire.jrun.logging.LoggingService 
.format={date MM/dd hh:mm:ss} {log.level} ({log.name}) {log.message}

# ログ警告およびエラー メッセージ
logging.loglevel=warning,error 

# ログ リスナを定義します。
logging.listeners=threadedlogger

# イベント リスナとして機能する、スレッド ロガーを定義します。
logging.threadedlogger.class=allaire.jrun.logging.ThreadedLogger 
# ディスパッチ ロガーをスレッド ロガーのリスナとして定義します。
logging.threadedlogger.listeners=dispatchlogger 

# イベントをファイル ライターに転送するディスパッチ リスナを定義します。
logging.dispatchlogger.class=allaire.jrun.logging.DispatchLogger 
# イベントを定義します。このステートメント内のイベントの順序に注目してください。
logging.dispatchlogger.events=
    {logging.warningevent},{logging.errorevent} 
# 送信先ロガーを定義します。 
# この順序は、ステートメント内のイベントの順序に一致します。
logging.dispatchlogger.destinations=fileWarnWriter,fileErrWriter 

# 警告用のファイル ライターを定義します。 
logging.fileWarnWriter.class = allaire.jrun.logging.FileLogWriter 
logging.fileWarnWriter.filename = {jrun.rootdir}/logs/warning.log 
logging.fileWarnWriter.rotationsize = 100000 
logging.fileWarnWriter.rotationfiles = 5 

# エラー用のファイル ライターを定義します。 
logging.fileErrWriter.class = allaire.jrun.logging.FileLogWriter 
logging.fileErrWriter.filename = {jrun.rootdir}/logs/errors.log 
logging.fileErrWriter.rotationsize = 100000 
logging.fileErrWriter.rotationfiles = 5 

ファイルと電子メールへのログ メッセージの書き込み

この例では、警告メッセージをファイルに、エラー メッセージをファイルと電子メールに書き込みます。

次の図は、この例の設定を示します。

この例では、スレッド ロガーからイベントを受信する 2 つのリスナが定義されています。ディスパッチ ロガーにより、スレッド ロガーからのイベントが受け取られ、定義された 2 つのファイル ライターのどちらかにこれらのイベントが転送されます。電子メール リスナにより、エラー イベントが監視され、これらのイベントに対する電子メール メッセージが生成されます。

これらのステートメントによって、この例のプロパティを定義します。既定のプロパティ設定への変更は太字で示します。変更をコメントによって説明します。

logging.class=allaire.jrun.logging.LoggingService 
.format={date MM/dd hh:mm:ss} {log.level} ({log.name}) {log.message}

# ログ警告およびエラー メッセージ
logging.loglevel=warning,error 

# イベント リスナを指定します。 
logging.listeners=threadedlogger

# イベント リスナとして機能する、スレッド ロガーを定義します。
logging.threadedlogger.class=allaire.jrun.logging.ThreadedLogger 
# スレッド ロガーのリスナを定義します。 
logging.threadedlogger.listeners=dispatchlogger,emailErrWriter 

# イベントをファイル ライターに転送するディスパッチ リスナを定義します。
logging.dispatchlogger.class=allaire.jrun.logging.DispatchLogger 
# イベントを定義します。このステートメント内のイベントの順序に注目してください。
logging.dispatchlogger.events= 
{logging.warningevent},{logging.errorevent} 
# 送信先ロガーを定義します。 
# この順序は、ステートメント内のイベントの順序に一致します。
logging.dispatchlogger.destinations=fileWarnWriter,fileErrWriter 
# 警告用のファイル ライターを定義します。 
logging.fileWarnWriter.class = allaire.jrun.logging.FileLogWriter 
logging.fileWarnWriter.filename = {jrun.rootdir}/logs/warning.log 
logging.fileWarnWriter.rotationsize = 100000 
logging.fileWarnWriter.rotationfiles = 5 

# エラー用のファイル ライターを定義します。 
logging.fileErrWriter.class = allaire.jrun.logging.FileLogWriter 
logging.fileErrWriter.filename = {jrun.rootdir}/logs/errors.log 
logging.fileErrWriter.rotationsize = 100000 
logging.fileErrWriter.rotationfiles = 5 

# 電子メール ライターを定義します。
# 電子メール アドレス、電子メール ホスト、およびメッセージ形式を定義します。
logging.emailErrWriter.class=allaire.jrun.logging.SmtpLogWriter 
logging.emailErrWriter.from=JRun-Notification 
logging.emailErrWriter.to=someone@mycompany.com 
logging.emailErrWriter.host=mymailhost 
# 受信するイベントを定義します。
logging.emailErrWriter.loglevel=error