「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>.NETのログ]] --Apache log4net --[[NLog]] * 目次 [#s199b1f3] #contents *概要 [#xca2d97e] Apache log4netについて。 *詳細 [#cba5e265] **コンポーネント [#se77c3fd] -lon4netでは、3つの主要なコンポーネント --[[レイアウト>#cfbd1341]] --[[アペンダ>#t3dd1f58]] --[[ロガー>#gd110238]] >の設定を定義ファイルに定義できる。 -[[アペンダ>#t3dd1f58]]・[[ロガー>#gd110238]]については、以下が参考になる。 --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することができる。 -ルートロガーとロガーがあり階層構造をとる。 **アペンダ種類 [#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 ***DBMS [#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 **その他 [#tb410a66] ***ログ ヘッダ [#ee167b05] 定義ファイルでレイアウト(Layout)を定義することにより、~ アペンダ(Appender)毎、ログ ヘッダを設定できる。 定義ファイルで[[レイアウト>#cfbd1341]]を定義することにより、~ [[アペンダ>#t3dd1f58]]毎、ログ ヘッダを設定できる。 (例) ↓時間 ↓レベル ↓スレッドID ↓メッセージ [2007/10/25 15:22:21,750], [DEBUG], [9], 任意のメッセージ ***ログ レベル [#v8ba26dd] 定義ファイルでロガー(Logger)を定義することにより、~ 出力するログ レベルのフィルタを設定できる。~ ログ レベルには次の5つのレベルがあり、~ ロガー(Logger)のログ出力APIを使い分ける。 |レベル|説明|h |Fatal|システム停止するような致命的な障害| |Error|システム停止はしないが、問題となる障害| |Warn|障害ではない注意警告| |Info|操作ログなどの情報| |Debug|開発用のデバッグメッセージ| **ログの設定 [#r5ab32c2] ***ローリング [#h161590b] -既定(日付でローリング、バックアップ数管理無し) <!-- ローリング・ログファイル出力用アペンダ --> <appender name="ACCESS" type="log4net.Appender.RollingFileAppender"> <param name="File" value="C:\root\files\resource\Log\ACCESS" /> <!-- ローリングの設定 --> <param name="StaticLogFileName" value="false" /> <param name="RollingStyle" value="date " /> <param name="DatePattern" value='"."yyyy-MM-dd".log"' /> <!-- 書き込み時の設定(追加 or 上書き、出力エンコーディング) --> <param name="AppendToFile" value="true" /> <encoding value="utf-8" /> <!-- メッセージのフォーマット --> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="[%date{yyyy/MM/dd HH:mm:ss,fff}],[%-5level],[%thread],%message%newline" /> </layout> <!-- フィルタ(範囲)の設定 --> <filter type="log4net.Filter.LevelRangeFilter"> <levelMin value="DEBUG" /> <levelMax value="FATAL" /> </filter> </appender> -バックアップ数が固定となるローリング~ 指定のサイズを超えている場合にローリングを行う。~ ファイル サイズは必ず、この設定値未満になるわけではない。 <!-- ローリングの設定--> <param name="StaticLogFileName" value="true" /> <param name="RollingStyle" value="size" /> <param name="MaximumFileSize" value="10MB" /> <param name="MaxSizeRollBackups" value="2" /> <param name="CountDirection" value="-1" /> --付与される番号の順番は、CountDirectionパラメタ値により制御する。 --サイズ10MB(MaximumFileSize)毎にローリングし、~ 下記のように、2つ(MaxSizeRollBackups)のバックアップを保持する 。 ---(ログファイル名) → 現在出力中のログ ---(ログファイル名).1 → 過去のログバックアップ(古い) ---(ログファイル名).2 → 過去のログバックアップ(最も古い) -日付とサイズを合わせたローリング <!-- ローリングの設定 --> <param name="StaticLogFileName" value="false" /> <param name="RollingStyle" value="composite" /> <param name="DatePattern" value='"."yyyy"-"MM"-"dd".log"' /> <param name="MaximumFileSize" value="10MB" /> <param name="MaxSizeRollBackups" value="10" /> <param name="CountDirection" value="-1" /> --MaxSizeRollBackupsパラメタ値は、サイズによるローリングにのみ適用される。~ --日付とサイズを合わせたローリング(composite)では、ログファイル数を一定数に保つ役割を果たさない。 ***[[詳細・例>https://opentouryo.osscons.jp/index.php?%E3%83%AD%E3%82%B0%E5%87%BA%E5%8A%9B%E6%96%B9%E5%BC%8F%20%28lon4net%29]] [#daf683be] *参考 [#ddded6bc] -Apache log4net – Apache log4net: Home - Apache log4net~ https://logging.apache.org/log4net/ -オープンソースのロギング・サービス「log4net」を使う:~ 連載:VBで実践! 外部コンポーネント活用術 - @IT~ -- (1/4)~ http://www.atmarkit.co.jp/ait/articles/0712/25/news121.html -- (2/4)~ http://www.atmarkit.co.jp/ait/articles/0712/25/news121_2.html -- (3/4)~ http://www.atmarkit.co.jp/ait/articles/0712/25/news121_3.html -- (4/4)~ http://www.atmarkit.co.jp/ait/articles/0712/25/news121_4.html -Log4Net を利用してログを記録する - Qiita~ https://qiita.com/rohinomiya/items/2b86c4e8d5afd5c2fb39 -log4net の config ファイルを 埋め込みリソース から読み込む~ https://mseeeen.msen.jp/load-log4net-config-from-embedded-resources/ ---- Tags: [[:プログラミング]], [[:.NET開発]]