「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-[[戻る>.NETのログ]]
--[[log4net>Apache log4net]]
--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]
定義ファイルで[[レイアウト>#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開発]]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS