Enterprise Library Logging Application Block をセットアップして、アプリケーションの実行パスにある「app.log」というファイルにログを記録しました。このアプリケーションは、その上で構成 Web サイトを実行する Windows サービスであり、ここでログ ファイルの内容を表示したいと考えています。
ログ ファイルを取得するのはかなり簡単な作業でした。
var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
var logSection = config.GetSection("loggingConfiguration") as LoggingSettings;
var lookup = logSection.TraceListeners
.Where(x => x is RollingFlatFileTraceListenerData).FirstOrDefault() as RollingFlatFileTraceListenerData;
if(lookup != null) {
var filePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, lookup.FileName);
return File.ReadAllText(_logFilePath);
}
ただし、設定した RollingFlatFileTraceListener は、読み取り対象のファイルを常にブロックします。それにアクセスする可能性はありますか?