Azure и log4net — удалить имя процесса

Я пытаюсь настроить log4net для ведения журнала через Azure. Однако, как только журналы попадают в хранилище, источник журнала прикрепляется к сообщению журнала.

WorkerRole.WorkerRole: запуск теста роли

Мне нужен точный формат журнала, однако log4net добавляет WorkerRole.WorkerRole: к сообщению.

Вот конфигурация, которую я использую для настройки log4net:

<log4net>
    <appender name="TraceAppender" type="log4net.Appender.TraceAppender">
      <layout type="log4net.Layout.PatternLayout">
        <!-- can be any pattern you like -->
        <conversionPattern value="%message" />
      </layout>
    </appender>
    <!-- does not have to be at the root level -->
    <root>
      <level value="ALL" />
      <appender-ref ref="TraceAppender" />
    </root>
  </log4net>

person user1542794    schedule 19.08.2015    source источник


Ответы (1)


Я столкнулся с этой же проблемой.

Глядя на приложение Trace Appender в сеансе отладки, я мог видеть, что TraceAppender.Category = "%logger" соответствует документация

По умолчанию используется %logger, который будет использовать имя регистратора текущего события LoggingEvent в качестве параметра категории.

Дальнейшие раскопки обнаружили это, зарегистрированное в отслеживании ошибок Log4Net.

TraceAppender: добавьте переключатель для отключения использования имени регистратора в качестве категории трассировки.

Элемент помечен как исправленный, хотя неясно, что именно вы добавляете в файл конфигурации. Небольшое тестирование с некоторыми предложениями в ветке обсуждения показало, что вы можете просто установить категорию на то, что хотите, поэтому, если вы ничего не хотите, просто добавьте это в свою конфигурацию:

<category value="" />

Убедитесь, что это дочерний элемент тега appender, например.

<appender name="TraceAppender" type="log4net.Appender.TraceAppender">
  <category value="" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date [%thread] %-5level - %message%newline" />
  </layout>
</appender>

В качестве альтернативы, я полагаю, вы могли бы попробовать создать новый аппендер, производный от log4net.Appender.TraceAppender, и переопределить свойство Category, чтобы установить его на свое собственное значение.

person oatsoda    schedule 22.09.2015
comment
При этом log4net (1.2.13) по-прежнему выдает префикс : , неужели нет способа отключить категорию? - person Shaun Wilson; 06.02.2016
comment
Я действительно не смотрел на это; Я просто принял : и пошел дальше :) Вы можете посмотреть на создание собственного класса приложения и попытаться переопределить базовое поведение TraceAppender, но подозреваю, что вам может понадобиться посмотреть RenderLoggingEvent AppenderSkeleton - person oatsoda; 08.02.2016