2011-05-24 8 views

Respuesta

17

Me di cuenta. Mi aplicación de prueba es una aplicación de consola escrita en C#. A continuación se muestra el contenido de los diversos archivos que utilicé.

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> 

Crear base de datos del sistema:

CREATE TABLE LogEntries(
id int primary key not null identity(1,1), 
TimeStamp datetime, 
Message nvarchar(128), 
level nvarchar(10), 
logger nvarchar(128)) 

Espero que esto ayude a otros a tratar de usar nLog y SQL Server CE 4.0.

Cuestiones relacionadas