我正在使用带有 C# 的 log4net AdoNetAppender 将自定义 XML 消息记录到数据库中。我有一个将一个参数作为 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(...)
。
任何人都可以看到我在哪里做错了吗?