Azure 和 log4net - 删除进程名称

标签 azure logging log4net log4net-configuration log4net-appender

我正在尝试配置 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>

最佳答案

我也遇到了同样的问题。

在调试 session 中查看 Trace Appender,我可以看到 TraceAppender.Category = "%logger" 根据 documentation

Defaults to %logger which will use the logger name of the current LoggingEvent as the category parameter.

进一步挖掘发现this登录Log4Net错误跟踪

TraceAppender : Add switch to disable using logger name as trace category

该项目已标记为已修复,但不清楚您添加到配置文件中的具体内容。对对话线程上的一些建议进行了一些测试,发现您可以将类别设置为您想要的内容,因此如果您不需要任何内容​​,只需将其添加到您的配置中即可:

<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 属性以强制其为您自己的值。

关于Azure 和 log4net - 删除进程名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32107043/

相关文章:

从 github 操作部署 Azure 函数会导致错误 : connect ECONNREFUSED 127. 0.0.1:443

azure - Azure 数据工厂的压缩发生在哪里?

android - Logcat 不显示我的日志调用

Azure AD 最佳实践 - 我是否应该继续对多个应用程序使用单一注册?

python - Azure ML 中的属性错误 : 'Logger' object has no attribute 'activity_info' during Dataset Registration

node.js - Nodejs 在 google-cloud/logging 中编写 protopayload

python - 在 python 日志记录中是否有一个格式化程序来截断字符串?

c# - 最小化生产中的日志语句

c# - 包含 namespace 的 XML 元素的 XDocument 或 XElement 解析

logging - log4net 常见附加程序设置