Nlog non scrive il file di log
-
mercoledì 23 maggio 2012 09:06
Ciao a tutti,
non so se qualcuno conosce NLog, una libreria open source per eseguire del semplice logging in applicazioni di vario tipo.
Io sto provando ad utilizzarla, ma non riesco a fargli creare il file di log, pur avendo seguito passo x passo il tutorial qua riportato:http://nlog-project.org/wiki/Tutorial
Nella mia libreria di classi ho importato il file nlog.config e l'ho scritto in questo modo:
<?xml version="1.0" encoding="utf-8" ?>
<!--
This file needs to be put in the application directory. Make sure to set
'Copy to Output Directory' option in Visual Studio.
-->
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><targets>
<target name="DALCAnagraficheLog"
xsi:type="File"
archiveEvery="Day"
fileName="D:\NBDO_Logs\Web\DALCAnagrafiche.log"
layout="${longdate}|${callsite}|${level}|${message}|${exception:format=Message,Type,Method,StackTrace:separator=#}" /><target name="ValidazioneSKC"
xsi:type="File"
archiveEvery="Day"
fileName="D:\NBDO_Logs\NBDOLib\ValidazioneSKC.log"
layout="${longdate}|${callsite}|${level}|${message}|${exception:format=Message,Type,Method,StackTrace:separator=#}" /></targets>
<rules>
<logger name="DALCAnagraficheLog" minlevel="Debug" writeTo="DALCAnagraficheLog" />
<logger name="ValidazioneSKCLog" minlevel="Debug" writeTo="ValidazioneSKC" />
</rules>
</nlog>
Quindi nella classe dove voglio effettuare il log ho prima la sua istanziazione:private Logger loggerNlog = NLog.LogManager.GetLogger("ValidazioneSKCLog");
e poi lo uso:
private void EseguiValidazione()
{
loggerNlog.Info("Inizio Validazione");
.....
Succede però che nella cartella D:\NBDO_Logs\NBDOLib\ tale file di log non compaia mai, pur avendo settato le proprietà di scrittura in tale cartella e aver dato il completo accesso a Everyone.Qualcuno può darmi una mano per capire l'inghippo?
Grazie
Luigi
Tutte le risposte
-
giovedì 24 maggio 2012 09:53Postatore
Forse il problema può essere la proprietà ArchiveEvery, con cui imposti ogni quanto scrivere su disco i messaggi di log: http://nlog-project.org/wiki/File_target#File_archiveEvery.
Marco Minerva [MCPD]
Blog: http://blogs.ugidotnet.org/marcom
Twitter: @marcominerva -
giovedì 24 maggio 2012 10:04
Beh ma anche così facendo, almeno uno al giorno dovrebbe scrivermelo. Invece ancora nulla. Rimane proprio un mistero.
L
-
giovedì 24 maggio 2012 10:09PostatoreNel caso di un'applicazione ASP .NET, non ne sarei così sicuro, perché essa dovrebbe rimanere in esecuzione un giorno intero... Ma questo non avviene praticamente mai, perché le applicazioni ASP .NET vengono continuamente arrestate, se non utilizzate per un certo periodo di tempo, per "fare spazio" alle altre.
Marco Minerva [MCPD]
Blog: http://blogs.ugidotnet.org/marcom
Twitter: @marcominerva -
domenica 17 giugno 2012 19:02Postatore
Ciao!
Sei riuscito a venire a capo del problema?
Marco Minerva [MCPD]
Blog: http://blogs.ugidotnet.org/marcom
Twitter: @marcominerva -
lunedì 18 giugno 2012 07:01
Più o meno, nel senso che ho creato una cartella specifica per NLog, dandogli tutti i permesse del caso, e scrivendo tutti i tipi di log al suo interno. Volevo fare in cartelle separate, ma non c'è stato verso di fargli scrivere i file di log.
Luigi
-
lunedì 18 giugno 2012 07:36PostatoreQuindi neanche usando il parametro ArchiveEntry che ti ho suggerito hai ottenuto la scrittura del file?
Marco Minerva [MCPD]
Blog: http://blogs.ugidotnet.org/marcom
Twitter: @marcominerva -
lunedì 18 giugno 2012 07:55
No, nemmeno in quel modo, molto strano.
L
-
lunedì 18 giugno 2012 07:58PostatoreCome ultimo tentativo, allora, potresti provare a chiedere direttamente sul forum di NLog: http://nlog-project.org/forum. Lì sicuramente troverai qualcuno più competente in materia.
Marco Minerva [MCPD]
Blog: http://blogs.ugidotnet.org/marcom
Twitter: @marcominerva

