TraceSource
.net2.0から導入されたトレーサー機能。ログというかLog4netみたいにいろんな出力実装クラス(*Listener)を連結して使用する。
使ってみたがかなりショボイくて使えるケースが限定される。
肝心のテキスト系ログはまったく使えなさそう。まずRollingFileAppenderのようなサイクリック機能が内容で、デバッグにしか使えなさそう。一般向けには無理。
FileLogTraceListenerも似た様なファイル出力系で、最大サイズや出力単位(日毎等)を指定できるが、これでも弱い。
テキストログはlog4netあたりが無難か?
stdout。デバッグ目的に近いもので、それなら使えるなぁという程度。log4netを組み込んだら不要だが、構築作業いらずで扱えるので幾分便利。
でもstdoutだけじゃ本番で使う際に力不足名ケースが多いので
これは使える。直接EventLogやるより、レベル制御等が抽象的にかけられるし、既に組み込み済みなので便利。
全体的に見れば、能力不足な感じがする。特にテキスト出力が弱いのは致命的で、だったら別のログフレームワークを用意する事になるし、他のフレームワークでテキスト以外の機能が無いって事はありえないので、結局不要かな~と感じる。
標準で使えるのはお手軽なので悔しいな。
log4net
log4jの.net実装。logbackとかは無いみたい。
app.configでlog4net.configを兼ねるには
当然だが、app.config内にlog4netのセッティングを書ける。つまりweb.configも同様。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="meta_switch.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="${TMP}\Log4netSample" />
<param name="AppendToFile" value="true" />
<param name="RollingStyle" value="size" />
<param name="MaxSizeRollBackups" value="3" />
<param name="MaximumFileSize" value="1KB" />
<param name="StaticLogFileName" value="false" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="RollingLogFileAppender" />
</root>
</log4net>
</configuration>
ポイントは<configSections>にlog4netを指定しないと、後述の<log4net>が読めなくて例外が飛ぶ。
あとはasseblyinfoにlog4netのコンフィグを解析できるように設定を入れればOK。
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
最終更新:2008年11月06日 17:09