XPath выражение в Log4Net - PullRequest
       37

XPath выражение в Log4Net

0 голосов
/ 14 февраля 2020

Изменение значений levelMin и levelMax для SmtpAppender и ADONetAppender для файла преобразования web.config. Как выбрать эти конкретные элементы и изменить значение?

<configuration>
  <log4net>
    <appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
      <filter type="log4net.Filter.LevelRangeFilter">
        <levelMin value="ERROR1" xdt:Transform="Replace" xdt:Locator="XPath(.)"/>
        <levelMax value="FATAL2" xdt:Transform="Replace" xdt:Locator="XPath(.)"/>
      </filter>
    </appender>
    <appender name="ADONetAppender" type="log4net.Appender.ADONetAppender">
      <filter type="log4net.Filter.LevelRangeFilter">
        <levelMin value="ERROR3" xdt:Transform="Replace" xdt:Locator="XPath(.)"/>
        <levelMax value="FATAL4" xdt:Transform="Replace" xdt:Locator="XPath(.)"/>
      </filter>
    </appender>
  </log4net>
</configuration>

Попытка <levelMin value="ERROR" xdt:Transform="Replace" xdt:Locator="configuration/log4net[@name='SmtpAppender']/filter[@providerName='log4net.Filter.LevelRangeFilter']"/> и многие другие комбинации для получения определенного элемента.

Как изменить значения для этих отдельных элементов в файлах преобразования web.config?

1 Ответ

0 голосов
/ 14 февраля 2020

Решил вышеупомянутую проблему. Добавление xdt:Locator="Match(name) помогло решить проблему.

<configuration>
  <log4net>
    <appender name="SmtpAppender" type="log4net.Appender.SmtpAppender" xdt:Locator="Match(name)">
      <filter type="log4net.Filter.LevelRangeFilter">
        <levelMin value="ERROR1" xdt:Transform="Replace"/>
        <levelMax value="FATAL2" xdt:Transform="Replace"/>
      </filter>
    </appender>
    <appender name="ADONetAppender" type="log4net.Appender.ADONetAppender" xdt:Locator="Match(name)">
      <filter type="log4net.Filter.LevelRangeFilter">
        <levelMin value="ERROR3" xdt:Transform="Replace"/>
        <levelMax value="FATAL4" xdt:Transform="Replace"/>
      </filter>
    </appender>
  </log4net>
</configuration>
...