回答
只是try ... catch
的exception
并给予例外到测井方法:
try
{
// ... code that throws exception
}
catch (Exeption ex)
{
myLogger.Error(ex);
}
此重载隐式调用,打印调用堆栈到您的日志异常的ToString()方法。
有两种基本形式,即需要一个对象,一个异常明确:
catch(Exception ex)
{
// the form that takes two args has an exception as second, prints trace...
_log.Error("My custom message", ex);
}
,而另一种的任何对象,并对其进行ToString()
:
catch(Exception ex)
{
// the form that takes one arg uses ToString()
_log.Error(ex);
}
前者允许您首先在日志条目上添加更有意义的消息,以提供您需要的任何其他详细信息。后者将做的工作,但只有使用ToString()
将异常细节,它给你:
的ToString的默认实现获取类 抛出当前异常的消息,称结果的名称 ToString的内部异常,以及调用 Environment.StackTrace的结果。如果这些成员中的任何一个是Nothing,则其值 不包含在返回的字符串中。
您需要确保布局模式的定义能够输出您想要的格式和数据。
用于输出记录事件堆栈跟踪电平符可以括号之间被包围的堆栈跟踪。例如,%stacktrace {level}。如果没有堆栈跟踪级指定符给出然后1假定
输出使用格式:type3.MethodCall3> type2.MethodCall2> type1.MethodCall1
这种模式不适用于精简框架组件。
使用此:
void Error(object message,Exception t)
原因是log4net的文档中的void Error(object message)
:
警告注意,传递一个例外,此方法将打印异常的名字,但没有堆栈跟踪。要打印堆栈跟踪,请改为使用
void Error(object,Exception)
表单。
Error(object message, Exception t)
是登录异常数据的最灵活的方式,因为它去作为例外,而不是对象以及可以在追加程序用于缩小日志到特定异常类(而不是通过搜索一个字符串,它是非常缓慢,而且不太一致)
还有的是需要消息和异常的所有非格式测井方法特别版本:
namespace log4net
{
public interface ILog
{
...
/* Log a message object and exception */
void Debug(object message, Exception t);
void Info(object message, Exception t);
void Warn(object message, Exception t);
void Error(object message, Exception t);
void Fatal(object message, Exception t);
...
}
}
您可以通过扩展器ILOG到有记录只是一个异常的方法了堆栈跟踪。
public static void ErrorWithStackTrace(this ILog log, Exception exception)
{
log.Error(exception.Message,exception);
}
- 1. 为什么log4net不能记录我的堆栈跟踪?
- 2. 如何登录node.js的堆栈跟踪
- 3. 如何用Winston 3记录完整的堆栈跟踪?
- 4. C++堆栈跟踪问题
- 5. 如何堆栈跟踪extlib?
- 6. GWT:使用StackTraceDeobfuscator远程记录和去混淆堆栈跟踪
- 7. 在javascript中使用堆栈跟踪记录错误
- 8. 如何停止log4net打印堆栈跟踪
- 9. 如何为Spring的SimpleMappingExceptionResolver记录异常堆栈跟踪
- 10. 如何防止日志记录Rails堆栈跟踪
- 11. 如何记录rxJava2的所有异常的堆栈跟踪?
- 12. 如何使用log4net记录跟踪消息?
- 13. 如何在使用NLog记录异常时获取堆栈跟踪?
- 14. 防止记录器打印任何堆栈跟踪
- 15. 使用CORBA时打印堆栈跟踪
- 16. 正确使用堆栈跟踪调试
- 17. 使用cx_freeze获取Python堆栈跟踪
- 18. android使用proguard,堆栈跟踪?
- 19. 在C++(MSVC)打印堆栈跟踪?
- 20. C++漂亮的堆栈跟踪
- 21. 从C#打印堆栈跟踪信息
- 22. C中的堆栈跟踪功能
- 23. 如何打印Groovy堆栈跟踪?
- 24. 如何缩短webpack堆栈跟踪?
- 25. 如何发送堆栈跟踪到log4j?
- 26. 如何打印StackOverflowException的堆栈跟踪
- 27. 如何解决堆栈跟踪误差
- 28. 堆栈跟踪处System.Windows.Forms.Control.CreateHandle()
- 29. log4j截断堆栈跟踪
- 30. 堆栈跟踪错误
您是否遇到Log.Error(ex)输出的特定问题? – 2012-02-16 22:17:55