我正在尝试配置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>
答案 0 :(得分:2)
我遇到了同样的问题。
在调试会话中查看Trace Appender我可以看到根据documentation
的TraceAppender.Category = "%logger"
默认为%logger,它将使用当前LoggingEvent的记录器名称作为类别参数。
进一步挖掘发现this登录了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
的新appender并覆盖Category
属性以强制它为你自己的值。