Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Microsoft.Practices.EnterpriseLibrary.Logging app.config日志文件名获取_Logging_Enterprise Library - Fatal编程技术网

从Microsoft.Practices.EnterpriseLibrary.Logging app.config日志文件名获取

从Microsoft.Practices.EnterpriseLibrary.Logging app.config日志文件名获取,logging,enterprise-library,Logging,Enterprise Library,我正在使用Microsoft.Practices.EnterpriseLibrary.Logging。 日志文件名设置位于App.Config文件中 我想通过代码获取这个fileName属性。 我不知道如何得到它。 可能吗?我怎么做? 我和C#一起工作 谢谢如果您知道配置中侦听器的名称和类型,则可以提取信息: IConfigurationSource configSource = ConfigurationSourceFactory.Create(); var logSettings = co

我正在使用Microsoft.Practices.EnterpriseLibrary.Logging。 日志文件名设置位于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)));
    }
}