Альтернатива log4net ThreadContext для добавления пользовательских свойств - PullRequest
0 голосов
/ 05 апреля 2019

У меня есть класс, в котором я добавил пользовательское свойство в 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 в регистратор.Таким образом, каждый раз, когда сообщение регистрируется, это свойство должно быть доступно для аппендера.Разработчики не должны заботиться об этом в то время, когда они что-то регистрируют.Они должны просто использовать регистратор, как они привыкли.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...