2009-03-05 15 views
62

chcę mój logfile wyglądać mniej więcej tak: 2009-02-13.loglog4net: Rolling appender pliku należy zdefiniować rozszerzenie

ale problemem jest to, że nie może wydawać się znaleźć żadnych sposobem dodania Rozszerzenie .log.

Próbowałem wielu rzeczy, ale nic nie pomaga. To, co mam tak daleko:

<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> 

Odpowiedz

53

spróbuj dodać rozszerzenie .log datę wzór tak jak i wyjąć ją z atrybutem pliku.

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

Należy również pamiętać, aby dodać

8

add ".lo \ g" na końcu swojej datepattern

105

innych odpowiedzi uciec od "G" w "log" od "g" jest szczególną postacią datePattern. To nie jest źle, ale wolę do zawijania cały zestaw non-Date znaków w pojedynczych cudzysłowach, jak w przykładzie:

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

To daje takie same wyniki, ale jest mi łatwiej zarządzać. W ten sposób nie muszę pamiętać, które specjalne znaki są specjalne dla DatePattern (lista jest długa i zróżnicowana). Jeśli zapomnę jedną postać, nie ponoszę ryzyka zepsucia moich nazw plików; wszystkie są dobrze uciekane masowo.

+3

Ja też lubię to podejście. –

+1

Jaka jest więc wartość tego parametru dla ? – ssmith

+2

@ssmith: Opuść '.log' z' '. Log4Net dołącza datepattern do wartości pliku, więc chcesz rozszerzenie pliku na pierwszym. –

4

To jest moja konfiguracja xml pliku dziennika. Ścieżka do pliku dziennika znajduje się w tagu "plik"

Spowoduje to utworzenie pliku dziennika "2012-11-22.log" w folderze "LogFiles" w folderze trasy na mojej stronie internetowej.

UWAGA: Upewnij się, że folder istnieje jako pierwszy!

<?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 teraz zapewnia również właściwość PreserveLogFileNameExtension które mogą zmusić .log rozszerzenie na końcu nazwy pliku związek (w tym data wzór i/lub rozmiar numer sekwencyjny):

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

Może być tylko w nowszych wersjach? Nie mogłem uruchomić tego parametru w moim systemie. Zakończyłem używanie .log dwa razy, raz w wartości pliku, a innym razem w datePattern :( – Sun

+1

Wierzę, że został dodany w 1.2.12 –