C# で log4net AdoNetAppender を使用して、カスタム XML メッセージをデータベースに記録しています。1 つのパラメーターを XML 形式として受け取るストアド プロシージャがあります。
ここに私の設定ファイルの一部があります:
<appender name="AdoNetAppender" type="log4net.Appender.ADONetAppender">
<bufferSize value="1" />
<threshold value="ALL" />
<reconnectOnError value="true" />
<param name="ConnectionType" value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=xxxdfasdfas" />
<param name="ConnectionString" value="Data Source=myserver;integrated security=false;Initial Catalog=mydatabase; Persist Security Info=True;User ID=me;Password=me;" />
<param name="UseTransactions" value="False" />
<commandText value="dbo.InsertLog " />
<commandType value="StoredProcedure" />
<parameter>
<parameterName value="@LogEntries" />
<dbType value="String" />
<size value="255" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%property{LogEntries}" />
</layout>
</parameter>
</appender>
log4net を使えば、こんなことができるはずです。
mylogger.Info(FormatToXML(ID,Date,LogLevel,message)); //FormatToXML takes these arguments, and create XMLElement
ただし、上記の行はデータベースに何も挿入しません。log4net デバッガーを有効にしましたが、エラーや例外は見られませんでした。
しかし、これは機能し、
log4net.GlobalContext.Properties["LogEntries"] = FormatToXML(ID,Date,LogLevel,message);
mylogger.Info("");
を呼び出すことができるはずの場所で何か間違ったことをしていると確信していますmylogger.Info(...)
。
誰かが私が間違っているところを見ることができますか?