Wie verwende ich ThreadContext in Log4Net?C#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Wie verwende ich ThreadContext in Log4Net?

Post by Anonymous »

Ich habe einen Code wie diesen

Code: Select all

var messageProcesses = (from message in messageQueue.Messages
select ProcessMessageAsync(message)).ToList();
try
{
await Task.WhenAll(messageProcesses).NoState();
}
catch (Exception e)
{
...
}
_logger.WriteLog(LogLevel.Info, $"Processing Done.");
Innerhalb von ProcessMessageAsync(message) habe ich

Code: Select all

log4net.ThreadContext.Properties["id"] = message.MessageID;
Diese ID wird in AdoNetAppender verwendet:

Code: Select all

...








Normalerweise haben wir mehrere Nachrichten, deshalb verwenden wir ThreadContext. Sollte diese Eigenschaft nur innerhalb von ProcessMessageAsync(message) verfügbar sein? Aus bestimmten Gründen wird jedoch beim Protokoll „Verarbeitung abgeschlossen“ auch die vorherige @id eingefügt. Genau wie ein globaler Wert.
Irgendwelche Vorschläge? Oder ist es so?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post