nlog 和 SQL Server Compact 4.0 的示例配置
Posted
技术标签:
【中文标题】nlog 和 SQL Server Compact 4.0 的示例配置【英文标题】:A sample configuration for nlog and SQL Server Compact 4.0 【发布时间】:2011-05-24 16:13:03 【问题描述】:如果有人可以向我发布一个示例 nlog.config,以便在 SQL Server Compact 4.0 中使用 nlog,我将不胜感激。
我可以输出到控制台和一个文件OK。我尝试了各种 dbProviders 和 connectionStrings,但似乎没有任何效果。
提前致谢。
艾伦·T
【问题讨论】:
【参考方案1】:我想通了。我的测试应用程序是一个用 C# 编写的控制台应用程序。以下是我使用的各种文件的内容。
程序.cs
using NLog;
namespace ConsoleApplication2
class Program
private static readonly Logger _logger = LogManager.GetCurrentClassLogger( );
static void Main(string[] args)
_logger.Debug( "A message" );
App.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.data>
<DbProviderFactories>
<remove invariant="System.Data.SqlServerCe.4.0" />
<add name="Microsoft SQL Server Compact Data Provider 4.0"
invariant="System.Data.SqlServerCe.4.0"
description=".NET Framework Data Provider for Microsoft SQL Server Compact"
type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
</DbProviderFactories>
</system.data>
</configuration>
NLog.config
<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
<targets>
<!-- write log message to database -->
<target xsi:type="Database" name="database">
<!-- SQL command to be executed for each entry -->
<commandText>INSERT INTO [LogEntries] (TimeStamp, Message, Level, Logger) VALUES(GETDATE(), @msg, @level, @logger)</commandText>
<!-- parameters for the command -->
<parameter name="@msg" layout="$message" />
<parameter name="@level" layout="$level" />
<parameter name="@logger" layout="$logger" />
<!-- connection string -->
<dbProvider>System.Data.SqlServerCe.4.0</dbProvider>
<connectionString>Data Source=$basedir\logger.sdf</connectionString>
</target>
</targets>
<rules>
<logger name="*" minlevel="Debug" writeTo="database" />
</rules>
</nlog>
数据库创建命令:
CREATE TABLE LogEntries(
id int primary key not null identity(1,1),
TimeStamp datetime,
Message nvarchar(128),
level nvarchar(10),
logger nvarchar(128))
希望这对尝试使用 nLog 和 SQL Server CE 4.0 的其他人有所帮助。
【讨论】:
以上是关于nlog 和 SQL Server Compact 4.0 的示例配置的主要内容,如果未能解决你的问题,请参考以下文章
SQL Server Compact Edition 和 SQL Server 2008 Management Studio
SQL Server CE 中的 Shrink 和 Compact 有啥区别?
SQL Server 2008 到 SQL Server Compact Edition?
如何为 SQL Server 和 SQL Server Compact 编写相同的 ado.net 代码?