回答
只是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