Microsoft.Practices.EnterpriseLibrary.Logging を使用しています。log fileName 設定は App.Config ファイルにあります。
この fileName プロパティをコードで取得したい。入手方法がわかりませんでした。出来ますか?どうすればいいですか?私はC#で作業しています。
ありがとう
Microsoft.Practices.EnterpriseLibrary.Logging を使用しています。log fileName 設定は App.Config ファイルにあります。
この fileName プロパティをコードで取得したい。入手方法がわかりませんでした。出来ますか?どうすればいいですか?私はC#で作業しています。
ありがとう
構成内のリスナーの名前とタイプがわかっている場合は、情報を抽出できます。
IConfigurationSource configSource = ConfigurationSourceFactory.Create();
var logSettings = configSource.GetSection(LoggingSettings.SectionName) as LoggingSettings;
var listener = logSettings.TraceListeners
.SingleOrDefault(t => t.Name == "Rolling Flat File Trace Listener");
if (listener != null)
{
var fileListener = listener as RollingFlatFileTraceListenerData;
if (fileListener != null)
{
Console.WriteLine(fileListener.FileName);
}
}
上記は RollingFlatFileTraceListener の場合です。
または、FileName プロパティをサポートするすべてのトレース リスナーのファイル名を取得するだけの場合は、次のようにすることができます。
IConfigurationSource configSource = ConfigurationSourceFactory.Create();
var logSettings = configSource.GetSection(LoggingSettings.SectionName) as LoggingSettings;
foreach (var listener in logSettings.TraceListeners)
{
PropertyInfo property = listener.GetType().GetProperty("FileName");
if (property != null)
{
Console.WriteLine(
string.Format("FileName for Trace Listener '{0}'={1}",
listener.Name, property.GetValue(listener, null)));
}
}