nlog和SQL Server Compact 4.0的示例配置

问题描述

| 如果有人可以向我发布一个示例nlog.config以在SQL Server Compact 4.0中使用nlog,我将不胜感激。 我可以输出到控制台并确定文件。我尝试了各种dbProviders和connectionStrings,但似乎没有任何效果。 提前致谢。 艾伦·T     

解决方法

我想到了。我的测试应用程序是一个用C#编写的控制台应用程序。以下是我使用的各种文件的内容。 Program.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的其他用户有所帮助。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...