189 messaggi dal 27 agosto 2004
Quale è il modo migliore per far scrivere all'applicazione un file di log? Creare una semplice gunzione che apre e accoda righe di log? o c'è un modo migliore?
ciauuu
3.121 messaggi dal 29 ottobre 2001
Contributi | Blog
erik77 <erik77> ha scritto:
Quale è il modo migliore per far scrivere all'applicazione un file di
log? Creare una semplice gunzione che apre e accoda righe di log? o
c'è un modo migliore?
ciauuu
Oppure puoi usare classi fatte apposta:
http://logging.apache.org/log4net/

Esempi d'uso:
http://www.ondotnet.com/pub/a/dotnet/2003/06/16/log4net.html

Ciao
4 messaggi dal 01 novembre 2006
Scusate se mi intrometto dopo così tanto tempo, ma non riesco a capire dove sbaglio con Log4Net e ASP.NET MVC 2

Premetto che stò effettuando il deploy del sito su un server Aruba.

Il mio problema è che una volta caricati i file sul server non riesco a vedere a vedere il mio file di log

Ho referenziato la dll di Log4Net e ho la seguente impostazione:

nella sezione configsection del Web.config

<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>

inoltre ho la sezione log4net sempre nel Web.config:

<log4net>
<appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
<param name="File" value="/Log/logfile.log"/>
<appendToFile value="true" />
<maximumFileSize value="1024KB" />
<maxSizeRollBackups value="5" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %level %logger - %message%newline" />
</layout>
</appender>
<logger name="LogOnFile">
<level value="DEBUG" />
<appender-ref ref="RollingFile" />
</logger>
<!--<root>
<level value="DEBUG" />
<appender-ref ref="RollingLogFileAppender" />
</root>-->
</log4net>

e nel mio Controller in cui stò verificando la funzionalità di logging ho:

private static readonly ILog log = LogManager.GetLogger("LogOnFile");
//private static readonly ILog log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

Alcune considerazioni:

1) Sia la sezione log4net del Web.config che il Controller hanno delle parti commentate in quanto la seguente porzione

<!--<root>
<level value="DEBUG" />
<appender-ref ref="RollingLogFileAppender" />
</root>-->

la utilizzo con il codice nel Controller:

//private static readonly ILog log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);


Tuttavia ho anche sentito che Aruba non permette di utilizzare la Reflection per questioni di Security, pertanto nel Web.Congig adesso ho decommentato/scommentato

<logger name="LogOnFile">
<level value="DEBUG" />
<appender-ref ref="RollingFile" />
</logger>

e nel controller utilizzo :

LogManager.GetLogger("LogOnFile");

in modo che non si faccia uso di Reflection

In locale tutto funziona correttamente sia con Reflection che senza
ma quando vado a deployare sul server remoto non funziona niente, non vedo la cartella Log che dovrebbe creare e tanto meno il file di log .... e questa cosa avviene in maniera trasparente senza scatenare nessun errore.


Qualche idea ??????

Rimango a disposizione per ulteriori chiarimenti.


Grazie

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.