У меня есть класс, в котором я добавил пользовательское свойство в ThreadContext для регистрации информации.
class MyClass
{
private ILog myLog = LogManager.GetLogger(typeof(MyClass));
public MyClass()
{
log4net.ThreadContext.Properties["ABC"] = "Foobar";
}
}
Я мог бы успешно войти в систему с помощью% property {ABC} в шаблоне, и он работает нормально.
Но экземпляры MyClass используются в разных контекстах, поэтому ABC не обязательно установлен на тот же ThreadContext, который выполняет myLog.Info (), поэтому иногда он равен нулю.
Есть ли другой способ, кроме использования ThreadContext?
Я ищу элегантный способ автоматически внедрить это свойство ABC в регистратор.Таким образом, каждый раз, когда сообщение регистрируется, это свойство должно быть доступно для аппендера.Разработчики не должны заботиться об этом в то время, когда они что-то регистрируют.Они должны просто использовать регистратор, как они привыкли.