- 追加された行はこの色です。
- 削除された行はこの色です。
[[Open棟梁>https://github.com/OpenTouryoProject]] wiki
「[[Open棟梁 wiki>https://opentouryo.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。
-[[戻る>アプリケーション設計のポイント]]
*目次 [#h94eb5ed]
#contents
*概要 [#e0d82e07]
ログ出力方式について纏める。
*lon4net [#qca89bc7]
Open棟梁では内部でlon4netを使用しているので、~
ココの記述は ≒ lon4netの仕様を説明となっている。
lon4netでは、3つの主要なコンポーネント
-ロガー
-アペンダ
-レイアウト
の設定を定義ファイルに定義できる。
アペンダ・ロガーについては、以下が参考になる。
-1. Log4J の基本 | TECHSCORE(テックスコア)~
http://www.techscore.com/tech/Java/ApacheJakarta/Log4J/1/#log1-3
-log4j - Wikipedia~
https://ja.wikipedia.org/wiki/Log4j
**レイアウト(Layout) [#cfbd1341]
アペンダが出力するログのフォーマットを定義する。
**アペンダ(Appender) [#t3dd1f58]
-具体的な出力処理を行う。
-出力先毎にアペンダの種類が存在する。
-アペンダの種類毎に設定可能な項目が異なる。
-出力先、ローリング設定等を定義する。
**ロガー(Logger) [#gd110238]
-論理的なログファイル名
-アペンダをロガーで束ねると複数の出力先へ出力できる。
-ログレベル毎にFilterすることができる。
-ルートロガーとロガーがあり階層構造をとる。
**設定 [#r5ab32c2]
設定の詳細は、”Open棟梁”の[[利用ガイド(纏め者編)>https://github.com/OpenTouryoProject/OpenTouryoDocuments/blob/master/documents/1_User_Guide/ja-JP/2_User_Guide(Leaders).doc]]の1.3節:「log4net」を参照のこと。
*出力先 [#g907f29b]
アペンダの種類毎に出力先が異なる。
**アペンダ種類 [#v2ffec90]
アペンダには以下のような種類がある。
-名前空間は、log4net.Appender
-ベースクラスは、.AppenderSkeleton
-参考:Apache log4net – Apache log4net: Config Examples~
https://logging.apache.org/log4net/release/config-examples.html
***ファイル [#g9c6971b]
-.FileAppender~
テキストファイル
-.RollingFileAppender~
ローリング・テキストファイル
***コンソール [#s820b4d0]
-.ConsoleAppender
-.ColoredConsoleAppender
-.AnsiColorTerminalAppender
***イベントログ [#i7123a08]
-.EventLogAppender
***DB [#r4d9bf6f]
-.AdoNetAppender
-.AdoNetAppenderParameter
***ネットワーク [#u6f73c8e]
-.UdpAppender
-.NetSendAppender
-.TelnetAppender
-.SmtpAppender
-.SmtpPickupDirAppender
-.RemotingAppender
***TraceListener [#me36b346]
-.DebugAppender~
System.Diagnostics.Debug system
-.TraceAppender~
System.Diagnostics.Trace system
-.AspNetTraceAppender~
ASP.NET TraceContext
***Syslog(LinuxおよびUNIX) [#g7f451b2]
-.LocalSyslogAppender
-.RemoteSyslogAppender
***その他 [#u103adde]
-.TextWriterAppender~
.TextWriterクラス
-.OutputDebugStringAppender~
OutputDebugString Win32API
-.MemoryAppender
-.AppenderCollection
-.ForwardingAppender
-.BufferingForwardingAppender
*ログ ヘッダ [#ee167b05]
定義ファイルでレイアウト(Layout)を定義することにより、~
アペンダ(Appender)毎、ログ ヘッダを設定できる。
(例)
↓時間 ↓レベル ↓スレッドID ↓メッセージ
[2007/10/25 15:22:21,750], [DEBUG], [9], 任意のメッセージ
*ログ レベル [#v8ba26dd]
定義ファイルでロガー(Logger)を定義することにより、~
出力するログ レベルのフィルタを設定できる。~
ログ レベルには次の5つのレベルがあり、~
ロガー(Logger)のログ出力APIを使い分ける。
|レベル|説明|h
|Fatal|システム停止するような致命的な障害|
|Error|システム停止はしないが、問題となる障害|
|Warn|障害ではない注意警告|
|Info|操作ログなどの情報|
|Debug|開発用のデバッグメッセージ|
*ログの種類 [#w5c95d04]
ログの種類毎に主要コンポーネント(ロガー、アペンダ、レイアウト)を準備
**アクセス トレース ログ [#kbba3fe0]
デバッグや、パフォーマンス・アクセス分析で重宝する。
-アプリケーションへのアクセス状況と処理状況(処理内容、処理時間)をフレームワークに埋め込んだトレースからログ ファイルに出力する。
-アクセス トレース ログの実装は、”Open棟梁”の各レイヤの「[[ベースクラス2]]」(画面コード親クラス2、業務コード親クラス2)上に共通処理として実装できる。
-例外発生時のExceptionの情報もコチラに出力する。
--正常時のログ出力情報は、性能の観点から、最小限とする。
--異常時のログ出力情報は、エラー・障害原因の究明のため~
詳細に出力する(エラー メッセージ、スタックトレースなど)。
***フォーマット [#c0e1a06c]
下記は、アクセス トレース ログ出力のテンプレート・フォーマット。
-ヘッダ
--log4netヘッダ
---タイムスタンプ
---ログ レベル
---スレッドID
--カスタム ヘッダ
---(認証)ユーザ名
---IPアドレス(端末の識別が可能な情報)
-メッセージ
--レイヤ、開始・終了
---[Init] or [Postback] : P層の画面のイベント処理
---"----->" : P層 のコントロール イベント処理の開始
---"<-----" : P層 のコントロール イベント処理の終了
---"----->>" : B層 業務処理の開始
---"<<-----" : B層 業務処理の終了
--画面名
--コントロール名
--メソッド名
--処理区分
---実行時間(ミリ秒)
---CPU時間(ミリ秒)
--例外情報
---ErrorMessageID
---ErrorMessage
---StackTrace
---ToStringした方がイイかも。
**SQLトレース ログ [#x304c13e]
SQLに絞ってになるが、アクセス トレース ログと同様に、~
デバッグや、パフォーマンス・アクセス分析で重宝する。
***フォーマット [#a20fef56]
下記は、SQLトレース ログ出力のテンプレート・フォーマット。
-ヘッダ
--log4netヘッダ
---タイムスタンプ
---ログ レベル
---スレッドID
--カスタム ヘッダ
---(認証)ユーザ名
---実行時間(ミリ秒)
---CPU時間(ミリ秒)
-メッセージ
--CommandText(実行時のSQL文)
--CommandParameter(実行時のパラメタ一覧)
--例外情報
---StackTrace
---ToStringした方がイイかも。
**オペレーション トレース ログ [#f8c56ed4]
業務のイベントをログ出力する。