2012-01-12 12 views
16

Ok, quindi sto capito come configurare il log4Net nella mia domanda, ma oraConfigurare log4net per il progetto asp.net MVC3

Prima Voglio migliorare la configurazione differenziazione del livello dei log, se l'applicazione è una versione o un debug, come posso fare questo ?.

In secondo luogo, Se avessi una cartella nel mio progetto chiamato LOG come posso impostare la configurazione, di non utilizzare la cartella fisica della mia applicazione ??

per esempio Anziché:

<file value="C:\physicalpath\LOG\Log.log" /> 

utilizzato

<file value="\LOG\Log.log" /> 

o

<file value="%some_variable%\LOG\Log.log" /> 
+5

Se si accede a una cartella all'interno dell'applicazione, tenere presente che un utente malintenzionato può visualizzare il contenuto o f questa cartella con un po 'di congetture e visualizzare informazioni sensibili sulla tua app. O rendere la cartella non visualizzabile in Gestione IIS (rimuovere i permessi di lettura), o mettere la cartella fuori dalla web root. –

risposta

21

Il documenation è semplice:

file di: il percorso completo o relativo al file di registro.

Quindi tutto quello che dovete avere è il percorso completo come C:\physicalpath\LOG\Log.log o quello ralative, questo deve iniziare con il dot char. come .\App_Data\Log4Net.Logs

è anche possibile utilizzare il nome della cartella in l'attributo file, quindi è necessario utilizzare l'attributo datePattern per specificare il nome del file, ad esempio:

<appender name="FileAppender" type="log4net.Appender.RollingFileAppender"> 
    <file value=".\\App_Data\\Log4Net.Logs\\backend"/> 
    <datePattern value=".yyyy-MM-dd'.log'"/> 
    <appendToFile value="true"/> 
    <maximumFileSize value="256KB"/> 
    <maxSizeRollBackups value="2"/> 
    <rollingStyle value="Date"/> 
    <staticLogFileName value="false"/> 
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/> 
    <layout type="log4net.Layout.PatternLayout"> 
    <conversionPattern value="%level %thread %logger - %message%newline"/> 
    </layout> 
</appender> 

Ricordo anche per aggiungere il

<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/> 

modo da poter evitare che log4net bloccare il file e non si può usato per aggiungere i tuoi messaggi.

Se non siete abituati a log4net, non dimenticare di aggiungere il nodo <root>, questo è il quello che cerchiamo di log4net sapere quello che si desidera utilizzare e non le <appender> nodi, per esempio, si può avere 10 <appender> nodi e utilizzare solo uno, il nodo <root> viene quindi configurato solo con quello che si desidera utilizzare ...


ecco un configurazione completa con 2 Mongo appenders e 1 file Appender, il <root> specifica che solo il file appender è in uso:

<log4net> 
    <appender name="MongoAppender" type="log4net.Appender.MongoDBAppender, log4mongo-net"> 
     <!-- MongoDB 1 connection options --> 
     <host value="staff.mongohq.com"/> 
     <port value="10077"/> 
     <databaseName value="myApp_2011"/> 
     <collectionName value="logs_net"/> 
     <userName value="myself"/> 
     <password value="123456"/> 
    </appender> 
    <appender name="MongoAppenderAppHarbor" type="log4net.Appender.MongoDBAppender, log4mongo-net"> 
     <!-- MongoDB 2 connection options --> 
     <host value="staff.mongohq.com"/> 
     <port value="10048"/> 
     <databaseName value="d1741d63-46b1-4a44-9c49-8c28cecae36b"/> 
     <collectionName value="logs_net"/> 
     <userName value="myself"/> 
     <password value="123456"/> 
    </appender> 
    <appender name="FileAppender" type="log4net.Appender.RollingFileAppender"> 
     <!-- Local file options --> 
     <file value=".\\App_Data\\Log4Net.Logs\\backend"/> 
     <datePattern value=".yyyy-MM-dd'.log'"/> 
     <appendToFile value="true"/> 
     <maximumFileSize value="256KB"/> 
     <maxSizeRollBackups value="2"/> 
     <rollingStyle value="Date"/> 
     <staticLogFileName value="false"/> 
     <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%level %thread %logger - %message%newline"/> 
     </layout> 
    </appender> 
    <root> 
     <!-- 
     <level value="DEBUG" /> 
     <appender-ref ref="MongoAppender" /> 
     <appender-ref ref="MongoAppenderAppHarbor" /> 
     --> 
     <appender-ref ref="FileAppender"/> 
    </root> 
    </log4net> 
+0

Ciao, e grazie per aver chiesto ok capisco chiaramente il mio dubbio relativo ai percorsi fisici, ma la tua configurazione completa sono i tuoi consigli per la mia prima preoccupazione circa i due bot di configurazione e il debug ???. Grazie – Jorge

+0

no, no, è la mia implementazione dal vivo (a parte i dati di accesso) ... così, ** ci sono 2 diverse domande ** sulla tua domanda. puoi per favore ** separarli ** e pubblicare il nuovo URL qui. Lascia che questo sia per "come usare il percorso relativo" e creane uno nuovo chiedendo come usare i diversi schemi ... – balexandre

+0

Ho aggiornato la mia domanda e grazie ancora – Jorge

0

seguito è una sezione del campione app.config, con il percorso essendo defin ed attraverso il tag <file value="somepath"/>.

This link è una buona risorsa per la documentazione

<log4net> 
    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> 
    <file value="C:\\SOMEPATH\\SOMELOG.log"/> 
    <appendToFile value="true"/> 
    <rollingStyle value="Size"/> 
    <maxSizeRollBackups value="10"/> 
    <maximumFileSize value="10MB"/> 
    <layout type="log4net.Layout.PatternLayout"> 
    <conversionPattern value="%date [%thread] %-5level %logger – %message%exception%newline"/> 
    </layout>  
</appender> 
<root> 
    <level value="ALL"/> 
    <appender-ref ref="RollingFileAppender"/> 
</root>  
</log4net> 
3

Ricorda forse si dovrebbe aggiungere in Global .asax.cs il seguente codice:

protected void Application_Start() 
{ 
      log4net.Config.XmlConfigurator.Configure(); 

} 
+0

Che cosa fa? – quantum

Problemi correlati