log4net
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
* log4net [#x3a7a3d7]
多分、log4cpp とほぼ同じだと思うけど。
** ダウンロード [#f121c9be]
- [[Apach log4net:http://logging.apache.org/log4net/]]
ここの Downloads からソース一式をダウンロードする。Stable...
アーカイブの中にはバイナリ(dll)も同梱されていて、それらは...
** コンパイル [#n46b26ca]
プロジェクト(ソリューション)は、src ディレクトリに入って...
log4net.sln を開くと、log4net.csprj と log4net.Tests.cspr...
このまま「ビルド」すると、Debug ビルドの方は上手くいくが...
error CS1548: アセンブリ 'log4net.dll' を署名していると...
暗号に失敗しました -- 'キー ファイル '..\..\..\log4net.s...
の読み込み中にエラーが発生しました -- 指定されたファイルが
見つかりません。 '
というようなエラーが出る。
log4net.snk.readme を見ると、キーファイルをつくる必要があ...
sn -k log4net.snk
sn というのは .NET のツール。
(Program Files)\Microsoft Visual Studio .NET 2003\SDK\v1...
に入っているが、おそらくパスが通っていない。ただ、「スタ...
最後の引数をファイル名のみにすると、(My Documents)\(ログ...
あと、AssemblyInfo.cs の最後の行で、log4net.snk の位置指...
#if STRONG && (CLI_1_0 || NET_1_0 || NET_1_1 || NETCF_1_...
[assembly: AssemblyDelaySign(false)]
//[assembly: AssemblyKeyFile(@"..\..\..\log4net.snk")]
[assembly: AssemblyKeyFile(@"log4net.snk")]
#endif
これで、Relese もコンパイルできるはず。
ちなみに、出来合いのバイナリ(dll)は bin ディレクトリに入...
** 使い方 [#y2f83dfa]
あとは、ここらへんを参考に。
- [[log4netでデバッグや障害解析に役立つログを出力する:htt...
ただ、このページの通りに log4net.Config.DOMConfigurator ...
warning CS0618: 'log4net.Config.DOMConfiguratorAttribute...
'Use XmlConfiguratorAttribute instead of DOMConfigurator...
というような警告がでるので、DOMConfigurator ではなく XmlC...
[assembly: log4net.Config.XmlConfigurator(Watch=true)]
*** 参考 [#r08ea0c2]
''PatternLayoutで指定できるパターン''&br;
|BGCOLOR(#CCFFCC):パターン|BGCOLOR(#CCFFCC):説明|
|%c|ログ出力が行われたlogger名を出力。|
|%C|クラスを出力。|
|%d|日時を出力。「%d{yyyy/mm/dd HH:mm:ss}」といった詳細指...
|%F|ファイル名を出力。|
|%l|ソース名や行といった呼び出し位置を出力。|
|%L|行番号を出力。|
|%m|メッセージを出力。|
|%M|メソッド名を出力。|
|%n|改行文字を出力。|
|%p|ログのレベル(Fatal/Errorなど)を出力。|
|%t|ログを生成したスレッドを出力。|
|%x|スレッドのNDC(ネスト化診断コンテキスト) を出力。ス...
( [[CodeZine:http://codezine.jp/a/article.aspx?aid=71]] ...
上記のうち、 %C、%F、%l、%L、%M は処理負荷が高くなるらし...
DEBUG レベルにして、運用時などは出力しないようにする方が...
** log4net.config はどこに置けば良い? [#y79f5f1f]
基本的に AssemblyInfo.cs に指定した位置。
[assembly: log4net.Config.XmlConfigurator(ConfigFile=@"l...
ConfigFile の値は絶対パス(フルパス)でも相対パスでも良いの...
確実に参照させたいなら絶対パスで書いてしまえば間違いない。
ただ、通常は config ファイルはプロジェクトに含めたいとこ...
相対パスで書く方が柔軟性がある。
*** Windows アプリケーションの場合 [#oc8bc5b8]
AssemblyInfo.cs に、
[assembly: log4net.Config.XmlConfigurator(ConfigFile=@"l...
と書いた場合は、実行モジュール(.exe など)と同じ位置になる。
ただ、大抵の場合、実行モジュールは bin\Debug や bin\Relea...
共通の config ファイルを参照するために、プロジェクトファ...
(実行モジュールから見たら 2 つ上の階層)を見るように設定...
つまり、
[assembly: log4net.Config.XmlConfigurator(ConfigFile=@"....
となる。
ただ、リリース時はここを書き換える必要があるか。
*** Web アプリケーションの場合 [#y6e7b9e7]
AssemblyInfo.cs に、
[assembly: log4net.Config.XmlConfigurator(ConfigFile=@"l...
と書いた場合は、Web アプリケーションのルートということに...
それは一体どこかというと、どうやらプロジェクトファイルが...
(コンパイルすると、実行モジュール(.dll)は bin の下にでき...
てっきりそこがルートかと思いきや、違った。)
なので、config ファイルをプロジェクトと同じ位置に置くので...
上の記述で問題ない模様。
*** アプリケーションの config に書いてしまう方法 [#m53861...
log4net.config というファイルを別に用意するのでなく、
アプリケーションの config ファイルに書き込んでしまう手も...
つまり、Windows アプリケーションなら app.config,
Web アプリケーションなら web.config に、
log4net.config の内容を埋め込んでしまう。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net"
type="log4net.Config.Log4NetConfigurationSecti...
</configSections>
<appSettings>
<!-- log4net内部のデバッグメッセージを出力する場合...
<add key="log4net.Internal.Debug" value="true"/>
</appSettings>
<log4net>
<!-- ここに log4net.config の内容を記述。 -->
<appender name="DailyAppender" type="log4net.Appen...
<!-- ファイル名 -->
<param name="File" value="trace.log" />
<!-- 追記する場合 true / 上書きする場合 false -->
<param name="AppendToFile" value="true" />
<!-- 日付や時刻の制約によるログファイルの切替 -->
<param name="RollingStyle" value="Date" />
<!-- 上から「毎月、毎週、毎日、半日、毎時、毎分...
<!-- <param name="DatePattern" value="yyyy-MM" ...
<!-- <param name="DatePattern" value="yyyy-ww" ...
<!-- <param name="DatePattern" value="yyyy-MM-d...
<!-- <param name="DatePattern" value="yyyy-MM-d...
<!-- <param name="DatePattern" value="yyyy-MM-d...
<!-- <param name="DatePattern" value="yyyy-MM-d...
<param name="DatePattern" value="yyyy-MM-dd" />
<!-- 保存するファイル数(数を超えた場合は古いも...
<param name="MaxSizeRollBackups" value="7" />
<param name="StaticLogFileName" value="true" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%...
</layout>
</appender>
<root>
<!-- 出力レベル -->
<level value="INFO" />
<!-- 使用する Appender -->
<appender-ref ref="DailyAppender" />
</root>
</log4net>
</configuration>
とか。
この場合は、AssemblyInfo.cs に ConfigFile の値を記述する...
つまり、
[assembly: log4net.Config.XmlConfigurator(Watch=true)]
これでOK。
** 関連 [#sc8f78dd]
- [[log4cpp]]
-----
[[プログラム・開発系メモ]]
終了行:
* log4net [#x3a7a3d7]
多分、log4cpp とほぼ同じだと思うけど。
** ダウンロード [#f121c9be]
- [[Apach log4net:http://logging.apache.org/log4net/]]
ここの Downloads からソース一式をダウンロードする。Stable...
アーカイブの中にはバイナリ(dll)も同梱されていて、それらは...
** コンパイル [#n46b26ca]
プロジェクト(ソリューション)は、src ディレクトリに入って...
log4net.sln を開くと、log4net.csprj と log4net.Tests.cspr...
このまま「ビルド」すると、Debug ビルドの方は上手くいくが...
error CS1548: アセンブリ 'log4net.dll' を署名していると...
暗号に失敗しました -- 'キー ファイル '..\..\..\log4net.s...
の読み込み中にエラーが発生しました -- 指定されたファイルが
見つかりません。 '
というようなエラーが出る。
log4net.snk.readme を見ると、キーファイルをつくる必要があ...
sn -k log4net.snk
sn というのは .NET のツール。
(Program Files)\Microsoft Visual Studio .NET 2003\SDK\v1...
に入っているが、おそらくパスが通っていない。ただ、「スタ...
最後の引数をファイル名のみにすると、(My Documents)\(ログ...
あと、AssemblyInfo.cs の最後の行で、log4net.snk の位置指...
#if STRONG && (CLI_1_0 || NET_1_0 || NET_1_1 || NETCF_1_...
[assembly: AssemblyDelaySign(false)]
//[assembly: AssemblyKeyFile(@"..\..\..\log4net.snk")]
[assembly: AssemblyKeyFile(@"log4net.snk")]
#endif
これで、Relese もコンパイルできるはず。
ちなみに、出来合いのバイナリ(dll)は bin ディレクトリに入...
** 使い方 [#y2f83dfa]
あとは、ここらへんを参考に。
- [[log4netでデバッグや障害解析に役立つログを出力する:htt...
ただ、このページの通りに log4net.Config.DOMConfigurator ...
warning CS0618: 'log4net.Config.DOMConfiguratorAttribute...
'Use XmlConfiguratorAttribute instead of DOMConfigurator...
というような警告がでるので、DOMConfigurator ではなく XmlC...
[assembly: log4net.Config.XmlConfigurator(Watch=true)]
*** 参考 [#r08ea0c2]
''PatternLayoutで指定できるパターン''&br;
|BGCOLOR(#CCFFCC):パターン|BGCOLOR(#CCFFCC):説明|
|%c|ログ出力が行われたlogger名を出力。|
|%C|クラスを出力。|
|%d|日時を出力。「%d{yyyy/mm/dd HH:mm:ss}」といった詳細指...
|%F|ファイル名を出力。|
|%l|ソース名や行といった呼び出し位置を出力。|
|%L|行番号を出力。|
|%m|メッセージを出力。|
|%M|メソッド名を出力。|
|%n|改行文字を出力。|
|%p|ログのレベル(Fatal/Errorなど)を出力。|
|%t|ログを生成したスレッドを出力。|
|%x|スレッドのNDC(ネスト化診断コンテキスト) を出力。ス...
( [[CodeZine:http://codezine.jp/a/article.aspx?aid=71]] ...
上記のうち、 %C、%F、%l、%L、%M は処理負荷が高くなるらし...
DEBUG レベルにして、運用時などは出力しないようにする方が...
** log4net.config はどこに置けば良い? [#y79f5f1f]
基本的に AssemblyInfo.cs に指定した位置。
[assembly: log4net.Config.XmlConfigurator(ConfigFile=@"l...
ConfigFile の値は絶対パス(フルパス)でも相対パスでも良いの...
確実に参照させたいなら絶対パスで書いてしまえば間違いない。
ただ、通常は config ファイルはプロジェクトに含めたいとこ...
相対パスで書く方が柔軟性がある。
*** Windows アプリケーションの場合 [#oc8bc5b8]
AssemblyInfo.cs に、
[assembly: log4net.Config.XmlConfigurator(ConfigFile=@"l...
と書いた場合は、実行モジュール(.exe など)と同じ位置になる。
ただ、大抵の場合、実行モジュールは bin\Debug や bin\Relea...
共通の config ファイルを参照するために、プロジェクトファ...
(実行モジュールから見たら 2 つ上の階層)を見るように設定...
つまり、
[assembly: log4net.Config.XmlConfigurator(ConfigFile=@"....
となる。
ただ、リリース時はここを書き換える必要があるか。
*** Web アプリケーションの場合 [#y6e7b9e7]
AssemblyInfo.cs に、
[assembly: log4net.Config.XmlConfigurator(ConfigFile=@"l...
と書いた場合は、Web アプリケーションのルートということに...
それは一体どこかというと、どうやらプロジェクトファイルが...
(コンパイルすると、実行モジュール(.dll)は bin の下にでき...
てっきりそこがルートかと思いきや、違った。)
なので、config ファイルをプロジェクトと同じ位置に置くので...
上の記述で問題ない模様。
*** アプリケーションの config に書いてしまう方法 [#m53861...
log4net.config というファイルを別に用意するのでなく、
アプリケーションの config ファイルに書き込んでしまう手も...
つまり、Windows アプリケーションなら app.config,
Web アプリケーションなら web.config に、
log4net.config の内容を埋め込んでしまう。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net"
type="log4net.Config.Log4NetConfigurationSecti...
</configSections>
<appSettings>
<!-- log4net内部のデバッグメッセージを出力する場合...
<add key="log4net.Internal.Debug" value="true"/>
</appSettings>
<log4net>
<!-- ここに log4net.config の内容を記述。 -->
<appender name="DailyAppender" type="log4net.Appen...
<!-- ファイル名 -->
<param name="File" value="trace.log" />
<!-- 追記する場合 true / 上書きする場合 false -->
<param name="AppendToFile" value="true" />
<!-- 日付や時刻の制約によるログファイルの切替 -->
<param name="RollingStyle" value="Date" />
<!-- 上から「毎月、毎週、毎日、半日、毎時、毎分...
<!-- <param name="DatePattern" value="yyyy-MM" ...
<!-- <param name="DatePattern" value="yyyy-ww" ...
<!-- <param name="DatePattern" value="yyyy-MM-d...
<!-- <param name="DatePattern" value="yyyy-MM-d...
<!-- <param name="DatePattern" value="yyyy-MM-d...
<!-- <param name="DatePattern" value="yyyy-MM-d...
<param name="DatePattern" value="yyyy-MM-dd" />
<!-- 保存するファイル数(数を超えた場合は古いも...
<param name="MaxSizeRollBackups" value="7" />
<param name="StaticLogFileName" value="true" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%...
</layout>
</appender>
<root>
<!-- 出力レベル -->
<level value="INFO" />
<!-- 使用する Appender -->
<appender-ref ref="DailyAppender" />
</root>
</log4net>
</configuration>
とか。
この場合は、AssemblyInfo.cs に ConfigFile の値を記述する...
つまり、
[assembly: log4net.Config.XmlConfigurator(Watch=true)]
これでOK。
** 関連 [#sc8f78dd]
- [[log4cpp]]
-----
[[プログラム・開発系メモ]]
ページ名: