2009-03-05 12 views
62

io voglio che il mio file di log di guardare qualcosa di simile: 2009-02-13.logLog4Net: rotolamento appender File, definire l'estensione

ma il problema è che io non riesco a trovare un modo per aggiungere il .log estensione.

Ho provato un sacco di cose ma niente aiuta. Questo è quello che ho fino a questo punto:

<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> 
    <file value="Logs/Log4Net/.log"/> 
    <appendToFile value="true"/> 
    <rollingStyle value="Date"/> 
    <datePattern value="yyyy-MM-dd" /> 
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/> 
    </layout> 
</appender> 

risposta

53

Prova ad aggiungere l'estensione .log della data di modello in questo modo e rimuoverlo dal attributo di file.

<datePattern value="yyyy-MM-dd.lo\g"/> 
... 
<staticLogFileName value="false" /> 
+7

ricordare anche aggiungere

8

add ".lo \ g" alla fine del vostro datepattern

105

Le altre risposte sfuggire alla "g" in "log" dal momento che "g" è un carattere speciale in datePattern. Questo non è sbagliato, ma preferisco di avvolgere l'intero set di caratteri non-data tra apici, in questo modo:

<datePattern value="yyyy-MM-dd'.log'" /> 

Questo dà gli stessi risultati, ma è più facile per me da gestire. In questo modo, non devo ricordare quali caratteri specifici sono speciali per datePattern (l'elenco è lungo e vario). Se dimentico un personaggio, non corro il rischio di etichettare i nomi dei miei file; sono tutti ben fuggiti in massa.

+3

Preferisco questo approccio. –

+1

Quindi qual è il valore che hai per con questo? – ssmith

+2

@ssmith: Lascia il '.log' da' '. Log4Net aggiunge la datapattern al valore del file, quindi si desidera l'estensione del file sul primo. –

4

Questa è la mia configurazione del file di registro xml. Il percorso del file di registro si trova nel tag "file"

Questo creerà un file di registro "2012-11-22.log" nella cartella "LogFiles" nella cartella di percorso del mio sito Web.

NOTA: assicurarsi che la cartella esista prima!

<?xml version="1.0"?> 
<configuration> 
    <configSections> 
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,  log4net"/> 
    </configSections> 
    <log4net> 
    <root> 
     <level value="INFO"/> 
     <appender-ref ref="RollingFileAppender"/> 
    </root> 
    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> 
     <file value="LogFiles/"/> 
     <appendToFile value="true"/> 
     <rollingStyle value="Date"/> 
     <maxSizeRollBackups value="5"/> 
     <maximumFileSize value="10MB"/> 
     <datePattern value="yyyy-MM-dd'.log'" /> 
     <staticLogFileName value="false"/> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date [%thread] %level %logger - %message%newline%exception"/> 
     </layout> 
    </appender> 
    </log4net> 
</configuration> 
15

log4net ora fornisce anche una proprietà PreserveLogFileNameExtension che può forzare l'estensione .log alla fine del nome del file composto (tra cui modello di data e/o dimensione numero di sequenza):

<file value="LogFiles/.log"/> 
<preserveLogFileNameExtension value="true" /> 
<datePattern value="yyyy-MM-dd" /> 
+0

Deve essere solo sulle versioni più recenti? Non riuscivo a far funzionare quel parametro sul mio sistema. Ho finito di usare .log due volte, una volta nel valore del file, e un'altra volta in datePattern :( – Sun

+1

Credo che sia stato aggiunto in 1.2.12 –

Problemi correlati