Ich möge LogicalThreadContext verwenden, um einige Kontextinformationen in meinem WCF-Dienst zu übergeben. Ich muss verschiedene Eigenschaften übergeben. In C# hat I-CodeEntfernen log4net Systemeigenschaften von Ausgang
LogicalThreadContext.Properties["MyProperty"] = 1;
in log4net Config I
haben<log4net>
<appender name="RollingLogFileAppenderSize" type="log4net.Appender.RollingFileAppender">
<file value="Logs\Log.log" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<appendToFile value="true" />
<rollingStyle value="Composite" />
<datePattern value="yyyyMMdd" />
<maxSizeRollBackups value="3" />
<maximumFileSize value="5MB" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d [%2t] [%property] %level %m%n" />
</layout>
</appender>
<root>
<level value="INFO" />
<appender-ref ref="RollingLogFileAppenderSize" />
</root>
</log4net>
Und ich log bekam
2015-11-03 16:24:36,313 [10] [{MyProperty=1, log4net:Identity=, log4net:UserName=User, log4net:HostName=User}] INFO - Info
Ich will nicht Systemeigenschaften haben log4net: Identität, log4net : Benutzername und log4net: Hostname im Protokoll. Wie macht man das? Ich kann Config wie diese
schreiben Aber ich habe mehrere Eigenschaften in Code und ich möchte nur Eigenschaften, um zu sehen, die ich hinzugefügt. Code
LogicalThreadContext.Properties.Remove("log4net:UserName");
funktioniert nicht.
Können Sie zeigen Ihre vollständige Konfiguration? – stuartd
Hinzugefügt in Frage –