Log4Net: регистрация всех необработанных исключений в проекте библиотеки классов C # - PullRequest
0 голосов
/ 23 мая 2018

У меня есть проект библиотеки классов C #, и мне нужно перехватить все необработанные исключения в моем классе, даже если я не использую блоки try catch.Примечание: я уже установил log4net с log4net.config, и он прекрасно работает, ведя журнал вручную в Debug, Info, Error.

Можете ли вы мне помочь?

спасибо

1 Ответ

0 голосов
/ 18 января 2019

Я должен был сделать то же самое, и этот пост был полезен.Единственным недостатком этого является то, что вы можете регистрировать слишком много исключений.Поскольку вы говорите, что пишете библиотеку классов, в зависимости от приложения, которое будет использовать вашу библиотеку, вы, возможно, не захотите перехватывать все исключения, создаваемые приложением.Чтобы решить эту проблему, я рекомендую сделать что-то вроде:

AppDomain.CurrentDomain.FirstChanceException += (sender, e) => {
    if (e.Exception.TargetSite.DeclaringType.Assembly == Assembly.GetExecutingAssembly())
    {
        logger.ErrorFormat("Exception Thrown: {0}\n{1}", e.Exception.Message, e.Exception.StackTrace);
    }
};

Таким образом, вы будете ловить только исключения из вашего кода.Надеюсь, это поможет!

...