マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

Apache log4netについて。

詳細

コンポーネント

の設定を定義ファイルに定義できる。

レイアウト(Layout)

アペンダが出力するログのフォーマットを定義する。

アペンダ(Appender)

  • 具体的な出力処理を行う。
  • 出力先毎にアペンダの種類が存在する。
  • アペンダの種類毎に設定可能な項目が異なる。
  • 出力先、ローリング設定等を定義する。

ロガー(Logger)

  • 論理的なログファイル名
  • アペンダをロガーで束ねると複数の出力先へ出力できる。
  • ログレベル毎にFilterすることができる。
  • ルートロガーとロガーがあり階層構造をとる。

アペンダ種類

アペンダには以下のような種類がある。

  • 名前空間は、log4net.Appender
  • ベースクラスは、.AppenderSkeleton?

ファイル

  • .FileAppender?
    テキストファイル
  • .RollingFileAppender?
    ローリング・テキストファイル

コンソール

  • .ConsoleAppender?
  • .ColoredConsoleAppender?
  • .AnsiColorTerminalAppender?

イベントログ

  • .EventLogAppender?

DBMS

  • .AdoNetAppender?
  • .AdoNetAppenderParameter?

ネットワーク

  • .UdpAppender?
  • .NetSendAppender?
  • .TelnetAppender?
  • .SmtpAppender?
  • .SmtpPickupDirAppender?
  • .RemotingAppender?

TraceListener?

  • .DebugAppender?
    System.Diagnostics.Debug system
  • .TraceAppender?
    System.Diagnostics.Trace system
  • .AspNetTraceAppender?
    ASP.NET TraceContext?

Syslog(LinuxおよびUNIX)

  • .LocalSyslogAppender?
  • .RemoteSyslogAppender?

その他

  • .TextWriterAppender?
    .TextWriter?クラス
  • .OutputDebugStringAppender?
    OutputDebugString? Win32API
  • .MemoryAppender?
  • .AppenderCollection?
  • .ForwardingAppender?
  • .BufferingForwardingAppender?

その他

ログ ヘッダ

定義ファイルでレイアウトを定義することにより、
アペンダ毎、ログ ヘッダを設定できる。

(例)

↓時間               ↓レベル ↓スレッドID ↓メッセージ
[2007/10/25 15:22:21,750], [DEBUG], [9], 任意のメッセージ

ログ レベル

定義ファイルでロガー(Logger)を定義することにより、
出力するログ レベルのフィルタを設定できる。

ログ レベルには次の5つのレベルがあり、
ロガー(Logger)のログ出力APIを使い分ける。

レベル説明
Fatalシステム停止するような致命的な障害
Errorシステム停止はしないが、問題となる障害
Warn障害ではない注意警告
Info操作ログなどの情報
Debug開発用のデバッグメッセージ

ログの設定

ローリング

  • 既定(日付でローリング、バックアップ数管理無し)
    <!-- ローリング・ログファイル出力用アペンダ -->
    <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)では、ログファイル数を一定数に保つ役割を果たさない。

詳細・例

参考


Tags: :プログラミング, :.NET開発


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-05-25 (火) 01:28:04 (126d)