2017-02-04 26 views
0

私はlog4netを使用してSQL Serverデータベースにエラーを記録しています。それは大丈夫ですが、1つの問題があります。データベース内のログテーブルには、Exceptionという名前の列が含まれています。私の設定は大丈夫です。なぜ誰がこのことが起こっているのか教えていただけますか?SQL Serverデータベースへのlog4netのログ

try{ 
    throw new Exception(); 
catch (Exception ex){ 
    _log.Error("error msg", ex); 
} 

:ここ

を使用すると、エラー列を記入したい場合は、log.Errorメソッドに引数として例外を与える必要が

commandText value="INSERT INTO Log ([Date], [Thread], [Level], [Logger],[Message], [Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" /> 
+0

例外はどのようにログに記録されていますか? 'void Error(Object message、Exception exception)'メソッドを使用していることを確認する必要があります。 – sgmoore

+0

this._log.ErrorFormat(ex.Message); – user2347338

答えて

0

web.configファイル内のCommandTextセクションですILog interface

Error(オブジェクト)Errorレベルのメッセージオブジェクトをログに記録します。 l。

エラー(オブジェクト、例外) パラメータとして渡された例外のスタックトレースを含むエラー レベルでメッセージオブジェクトをログ

ErrorFormat(String、Object)エラーレベルの書式付き メッセージ文字列をログに記録します。

ErrorFormat(String、Object [])フォーマットされたメッセージ文字列 をエラーレベルで記録します。

ErrorFormat(IFormatProvider、 String、Object [])エラー レベルの書式付きメッセージ文字列を記録します。

ErrorFormat(String、Object、Object)エラーレベルのメッセージ文字列 を記録します。

ErrorFormat(String、Object、Object、Object)フォーマットされた メッセージ文字列をエラーレベルで記録します。

0

あなたはthis._log.ErrorFormat(ex.Message)を使用していると、すなわち

void Error(Object message,Exception exception) 

、あなたは例外を渡しますが、log4netのに文字列としてだけでメッセージされていない、正しいオーバーロードを使用する必要があります。

関連する問題