Ceci est une nouvelle réponse à une vieille question, mais peut-être son utile à quelqu'un.
Je n'ai pas aimé le long nom de fil de quartz [DefaultQuartzScheduler_Worker-1] dans mes fichiers journaux. Au lieu de cela, je voulais que log4net affiche l'identifiant du thread. Vous devez donc définir une propriété qui enregistre l'ID du thread actuel.
J'ai trouvé cette classe. source
Ceci est un lambda/func mode de journalisation contexte calculé: log4net context explained
public class Log4NetContextProperty : IFixingRequired
{
private readonly Func<string> _getValue;
public Log4NetContextProperty(Func<string> getValue)
{
_getValue = getValue;
}
public override string ToString()
{
return _getValue();
}
public object GetFixedObject()
{
return ToString();
}
}
Et vous devez l'appeler ainsi dans votre application commencer lieu. Ensuite, dans votre configuration log4net, adaptez le pattern de conversion pour inclure la nouvelle propriété. mine ressemble à ceci:
<conversionPattern value="%d{dd.MM.yyyy HH:mm:ss,ffff} %-5level [%property{threadId}] - %message%newline" />
Voilà. De cette façon, l'identifiant de chaque thread sera déterminé à l'exécution et connecté dans sa propre propriété.
Oui, c'est purement pour le but de débogage et aussi je pense que nommer ces threads (atleast préfixes) aiderait à vérifier les logs plus tard si quelque chose ne va pas – asyncwait