Nlog non scrive il file di log
-
2012年5月23日 9: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
すべての返信
-
2012年5月24日 9:53回答者:
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 -
2012年5月24日 10:04
Beh ma anche così facendo, almeno uno al giorno dovrebbe scrivermelo. Invece ancora nulla. Rimane proprio un mistero.
L
-
2012年5月24日 10:09回答者:Nel 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 -
2012年6月17日 19:02回答者:
Ciao!
Sei riuscito a venire a capo del problema?
Marco Minerva [MCPD]
Blog: http://blogs.ugidotnet.org/marcom
Twitter: @marcominerva -
2012年6月18日 7: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
-
2012年6月18日 7:36回答者:Quindi 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 -
2012年6月18日 7:55
No, nemmeno in quel modo, molto strano.
L
-
2012年6月18日 7:58回答者:Come 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

