【问题标题】:appending date in filename in C# app.config using Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.RollingFlatFileTraceListener使用 Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.RollingFlatFileTraceListener 在 C# app.config 中的文件名中附加日期
【发布时间】:2020-11-19 09:58:14
【问题描述】:

我在 C# 应用程序的 app.config 中使用 Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.RollingFlatFileTraceListener,如下所示:

 <listeners>
  <add name="Rolling Flat File Trace Listener" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.RollingFlatFileTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
       listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.RollingFlatFileTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
       fileName="RollingFlatFile.log" 
       footer="----------------------------------" 
       formatter="Text Formatter" 
       header="" rollInterval="Day"
       timeStampPattern="yyyy-MM-dd hh:mm:ss"
       traceOutputOptions="DateTime, Timestamp" 
       filter="All" />
  <add name="Event Log Trace Listener" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.FormattedEventLogTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.FormattedEventLogTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" source="Application" formatter="Text Formatter" log="Application" machineName="." traceOutputOptions="None" />
</listeners>

我希望该文件名也应包含日期,例如 RollingFlatFile_19Nov2020.log。任何人都可以通过更改此配置文件来帮助我如何实现这一目标。

【问题讨论】:

    标签: c# logging tracelistener


    【解决方案1】:

    解决方案: 通过代码在环境变量中设置日期。该变量可通过 web.config 或 app.config 访问。下面是例子-

    C#代码-

    Environment.SetEnvironmentVariable("TODAYDATE", DateTime.Now.ToString("dd_MM_yyyy"), EnvironmentVariableTarget.Process);
    

    而在 app.config 中,我们可以像这样使用这个变量-

     <add name="Rolling Flat File Trace Listener" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.RollingFlatFileTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
               listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.RollingFlatFileTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
               fileName="Logs/RollingFlatFile_%TODAYDATE%.log"
               footer="----------------------------------"
               formatter="Text Formatter"
               header="" rollInterval="Day"
               timeStampPattern="yyyy-MM-dd hh:mm:ss"
               traceOutputOptions="DateTime, Timestamp"
               filter="All" />
    

    它将在文件夹Logs中创建日志文件,文件名将是RollingFlatFile_14_12_2020.log

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-28
      • 2010-12-20
      • 2012-12-22
      • 1970-01-01
      • 2021-11-22
      • 2020-10-30
      • 1970-01-01
      • 2013-08-31
      相关资源
      最近更新 更多