C# 在日志中为log4net ext json配置自定义Appname
我使用log4net.ext.json登录wcf类库,但没有exe。但是,我想给appname一些别名,例如CarService,而不是/LM/W3SVC/2/ROOT-1-132599327970820414。我如何配置它 当前配置:C# 在日志中为log4net ext json配置自定义Appname,c#,.net,log4net,log4net-configuration,log4net-ext-json,C#,.net,Log4net,Log4net Configuration,Log4net Ext Json,我使用log4net.ext.json登录wcf类库,但没有exe。但是,我想给appname一些别名,例如CarService,而不是/LM/W3SVC/2/ROOT-1-132599327970820414。我如何配置它 当前配置: <log4net> <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<log4net>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<encoding value="UTF-8" type="System.Text.UTF8Encoding" />
<file type="log4net.Util.PatternString" value="C:\Logs\WcfLibrary.log" name ="RollingLogFileAppender" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<countDirection value="-1"/>
<datePattern value="yyyy-MM-dd"/>
<logName value="Myapp" />
<applicationName value="BmwService" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.SerializedLayout, log4net.Ext.Json">
<member value="logDateTime%date:yyyy-MM-dd HH:mm:ss:ffff" />
<decorator type="log4net.Layout.Decorators.StandardTypesDecorator, log4net.Ext.Json" />
<member value="hostName" />
<default />
<remove value="date" />
<remove value="ndc" />
<remove value="message" />
<remove value="thread" />
<remove value="exception" />
<member value="logData:messageObject" />
</layout>
</appender>
<root>
<level value="All"/>
<appender-ref ref="RollingLogFileAppender"/>
</root>
</log4net>
预期日志为:
{"logDateTime":"2021-03-11","hostName":"PC","level":"DEBUG","appname":"CarService","logger":"Service","logData":{"Message":"Service started","ClassName":"Utils","MethodName":"Start"}}
看看各种各样的。您应该在第一次日志调用之前(可能在构造函数中,或在初始化期间)设置此参数。它将在线程调用的整个生命周期内持续存在,只有在线程之外时才需要重新设置它。如果您已经为记录器实现了一个包装器库,那么还可以根据您公开的一些参数在那里设置它
ThreadContext.Properties["appname"] = "CarService"
设置好后,您应该能够在appender配置或映射中引用“appname”
此外,如果您试图获取应用程序的实际名称,并且已将其镜像到IIS站点名称中,则可以使用“HostingEnvironment.SiteName”传递到线程上下文中
ThreadContext.Properties["appname"] = "CarService"