Передать динамическое значение аппендеру - PullRequest
1 голос
/ 13 октября 2011

Я создаю разные отчеты и пытаюсь передать имя отчета и добавить его к имени отчета log4net.Имя отчета будет отличаться при каждом запуске отчета, поэтому оно будет назначаться динамически.
Я пытался использовать LOG4NET.GLOBALCONTEXT.PROPERTIES("RptName") = sReportName", но все, что я получаю, - это пустое значение в заголовке отчета.

class Program
{
    static void Main(string[] args)
    {
        log4net.Config.XmlConfigurator.Configure(); 
        log4net.ILog log = log4net.LogManager.GetLogger(typeof(Program));

        log4net.GlobalContext.**Properties("RptName")** = sReportName
        log.Info("this is an info message"); 
        Console.ReadLine(); 
    }
}
    <!--RollingFileAppender:  Provides output of all log entries to a file in the \logs directory
          Filename:  RSGetReport_yyyyMMdd_hh:mm:ss_processID.txt-->  
  <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
      <file type="log4net.Util.PatternString"  value="logs\RSGetReport_%date{yyyyMMdd}_%date{hhmmss}_%processid**_%property{myContext}.**txt" />
      <appendToFile value="true" />
      <rollingStyle value="Once" />
      <maxSizeRollBackups value="10" />
    <filter type="log4net.Filter.LevelRangeFilter">
      <levelMin value="ALL" />
    </filter>
      <maximumFileSize value="1MB" />
      <countDirection value="1" />
      <staticLogFileName value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
      </layout>
    </appender>strong text

1 Ответ

0 голосов
/ 14 октября 2011

Вам необходимо установить глобальное свойство перед настройкой log4net. Смотрите также этот вопрос .

...