我试图在log4net上使用SQL Server Compact Edition(v4.0)。有一个伟大的指南here。它使用Compact Edition 3.5,但大多数步骤应该是相同的。使用带有log4net的SQL Server Ce 4.0
所以,我创建了内部“的App_Data”一个SQL Server CE 4.0数据库,在我的MVC Web应用程序“日志”表,并确保该System.Data.SqlServerCe“复制本地”是真。我还将连接字符串更改为app_data文件夹。
我的appender看起来是这样的:
<appender name="SqlCeAppender" type="log4net.Appender.AdoNetAppender">
<connectionType value="System.Data.SqlServerCe.SqlCeConnection, System.Data.SqlServerCe" />
<connectionString value="Data Source=|DataDirectory|\='log4net.sdf'" />
<commandText
value="INSERT INTO Log
([Date],[Thread],[Level],[Logger],[Message],
[Exception], [UserName], [Custom])
VALUES
(@log_date, @thread, @log_level, @logger, @message,
@exception, @username, @custom)" />
<parameter>
<parameterName value="@log_date" />
<dbType value="DateTime" />
<layout type="log4net.Layout.RawUtcTimeStampLayout" />
</parameter>
<parameter>
<parameterName value="@thread" />
<dbType value="String" />
<size value="255" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%thread" />
</layout>
</parameter>
<parameter>
<parameterName value="@log_level" />
<dbType value="String" />
<size value="50" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%level" />
</layout>
</parameter>
<parameter>
<parameterName value="@logger" />
<dbType value="String" />
<size value="255" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%logger" />
</layout>
</parameter>
<parameter>
<parameterName value="@message" />
<dbType value="String" />
<size value="4000" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%message" />
</layout>
</parameter>
<parameter>
<parameterName value="@exception" />
<dbType value="String" />
<size value="2000" />
<layout type="log4net.Layout.ExceptionLayout" />
</parameter>
<parameter>
<parameterName value="@username" />
<dbType value="String" />
<size value="255" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%username" />
</layout>
</parameter>
<parameter>
<parameterName value="@custom" />
<dbType value="String" />
<size value="255" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%property{Custom}" />
</layout>
</parameter>
</appender>
而且......没有任何反应 - 没有日志。当我换出我的文本文件appender时,我得到日志,所以这与这个appender有关 - 但我不知道是什么。谁能帮忙?
你能分享一些代码吗?在此,我对如何创建使用实体框架的自定义'Appender'非常感兴趣。 – InteXX 2015-02-22 13:43:59
@InteXX对不起,这是以前的工作,我没有那个代码了。我记得它有很好的文档记录,我认为有些示例代码显示了一个自定义的appender。 – 2015-03-09 16:07:30
无论如何,谢谢你。我会想象出来。 – InteXX 2015-03-09 21:09:01