Я должен был сделать то же самое, и этот пост был полезен.Единственным недостатком этого является то, что вы можете регистрировать слишком много исключений.Поскольку вы говорите, что пишете библиотеку классов, в зависимости от приложения, которое будет использовать вашу библиотеку, вы, возможно, не захотите перехватывать все исключения, создаваемые приложением.Чтобы решить эту проблему, я рекомендую сделать что-то вроде:
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);
}
};
Таким образом, вы будете ловить только исключения из вашего кода.Надеюсь, это поможет!