

















当使用log4net+spring.net+Nhibernate组合的时候,如果发生异常,经过层层传递,以及Spring对异常的包装,如果直接使用
LogManager.GetLogger(typeof(_Default)).Error(ex.Message, ex);
来记录异常信息的话,通常记录不了,猜测的原因(并没有深究。。。):ex有内部异常,且这个异常经过了nhibernate和spring包装之后,log4net无法从内部堆栈中找出最原始的异常,所以导致log4net记录不了这个异常,那么我们就采用以下形式记录:
LogManager.GetLogger(typeof(_Default)).Error(ex.Message, ex.InnerException == null ? ex : ex.InnerException);
就能解决这个问题!
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。