Как я могу установить Sitename из IIS в мой файл, созданный log4net - PullRequest
0 голосов
/ 04 марта 2010

Я использую log4net в моих проектах .NET, и журналы создаются с именами, такими как:

C:\\Inetpub\\zz_appLogs\\<hard coded sitename>\\<yyyyMMdd>\\<hard coded file name with txt extension>

Теперь я хочу изменить имя файла журнала на имя текущего сайта в IIS. Я пробовал это в настройках log4net, но это не сработало:

<file type="log4net.Util.PatternString" 
      value="C:\Inetpub\zz_appLogs\MYsiteLogs\" />
...
<datePattern 
      value="yyyyMMdd\\&quot;%property{CURRENTSITENAME}_info.txt&quot;" />

Полученные журналы имеют следующее имя файла:

C:\Inetpub\zz_ErrorLogs\MVCdoctoolLogs\20100304\  
      %property{CURRENTSITENAME}_error.txt`

Я устанавливаю свойство в app_start в файле Global.ascx проекта:

log4net.GlobalContext.Properties["CURRENTSITENAME"] = 
        System.Web.Hosting.HostingEnvironment.SiteName;

Можете ли вы сказать мне, как я могу установить имя узла из IIS в результирующем текстовом файле, созданном log4net.

спасибо заранее :)

1 Ответ

0 голосов
/ 04 марта 2010

Я попробовал себя, и следующее дало мне ожидаемый результат. Я провел тестирование с консольным приложением, но я не вижу, как это должно что-то изменить:

  <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
      <file type="log4net.Util.PatternString" value="c:\temp\%date{yyyyMMdd}\%property{SiteName}.txt" />
      <rollingStyle value="Size" />
      <appendToFile value="true" />
      <maximumFileSize value="100KB" />
      <maxSizeRollBackups value="1" />
      <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%date [%2thread] %-5level %logger - %message%newline" />
      </layout>
  </appender>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...