c# - net - nlog levels
¿Cómo configuro NLog para escribir en una base de datos? (3)
Estoy intentando que NLog escriba en una base de datos, sin embargo, con mi código actual produce una excepción cuando intento depurar, la excepción es: el inicializador de tipo para ''NotifyIcon.Program'' produjo una excepción.
El código de mi archivo de configuración NLog está abajo, ya que parece estar causando el problema ya que es el único código que he cambiado.
<?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" autoReload="true">
<!--
See http://nlog-project.org/wiki/Configuration_file
for information on customizing logging rules and outputs.
-->
<targets>
<!-- add your targets here -->
<target name="database" xsi:type="Database" />
<target xsi:type="Database"
name="String"
dbUserName="Layout"
dbProvider="sqlserver"
useTransactions="false"
connectionStringName="String"
connectionString="Data Source=AC-02/SQLEXPRESS;Initial Catalog=master;Integrated Security=True"
keepConnection="true"
dbDatabase="Layout"
dbPassword="Layout"
dbHost="Layout"
installConnectionString="Layout"
commandText="INSERT INTO Logs (Machine_Name, Username, Logon_Time, Screensaver_On, Screensaver_Off, Logoff_Time, Program_Start) Values @MachineName, @Username, @LogonTime, @Screensaver_On, @Screensaver_Off, @LogoffTime, @ProgramStart "/>
</targets>
<rules>
<logger name="*" minlevel="Trace" writeTo="database" />
</rules>
</nlog>
Cualquier y toda ayuda sería muy apreciada =]
Parece que su cadena de inserción no está en el formato correcto? Falta () alrededor de la lista de parámetros.
commandText="INSERT INTO Logs (Machine_Name, Username, Logon_Time, Screensaver_On, Screensaver_Off, Logoff_Time, Program_Start) Values (@MachineName, @Username, @LogonTime, @Screensaver_On, @Screensaver_Off, @LogoffTime, @ProgramStart) "
Parece que te faltan los parámetros que se van a insertar.
Vea los ejemplos en http://justinpdavis.blogspot.com/2010/04/logging-to-database-with-nlog.html
La página web nLog no deja muy claro que son necesarios, pero si entrecierras los ojos y lees https://github.com/nlog/NLog/wiki/Database-target , deberías encontrar que son necesarios.
U también escribió 2 objetivos. Y también muchos atributos que no necesitas establecer. Debería ser:
<target name="DbLog" xsi:type="Database" connectionString="YourConStr"
commandText="insert into [blablablabal] (Col1) values (@val1)">
<parameter name="@val1" layout="${level}" /></target>
Algo como esto. Fácil no? :)