2016-01-13 11 views
0

Возможно ли создание журнала каждый день, который записывает журналы в следующем формате папки.Log4Net C# - Создать папку журнала по дате

D:\Logs\yyyyMMdd\App1\App.txt 

Будет ли Log4Net создавать путь, если он не существует. ?

Я пробовал следующее, но он не работает.

<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> 
     <file value="D:\Logs\" /> 
     <appendToFile value="true" /> 
     <datePattern value="yyyyMMdd'\App1\App.txt'" /> 
     <rollingStyle value="Date" /> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date{ABSOLUTE} [%logger] %level - %message%newline%exception" /> 
     </layout> 
    </appender> 

Заранее спасибо.

ответ

2

Вы можете ввести свой собственный Appender:

namespace CustomLogging 
    { 
    public class CustomAppender : log4net.Appender.RollingFileAppender 
     { 
     protected override void OpenFile(string fileName, bool append) 
     { 
      string baseDirectory = Path.GetDirectoryName(fileName); 
      string fileNameOnly = Path.GetFileName(fileName); 
      string newDirectory = Path.Combine(baseDirectory, DateTime.Now.ToString("yyyyMMdd")); 
      string newFileName = Path.Combine(newDirectory, fileNameOnly); 

      base.OpenFile(newFileName, append); 
     } 
     } 
} 

, а затем

<appender name="CustomAppender" type="CustomLogging.CustomAppender"> 
    <file type="log4net.Util.PatternString" value="Logs\Client"/> 
    <appendToFile value="true"/> 
    <rollingStyle value="Composite"/> 
    <datePattern value="-HHmmss"/> 
    <maxSizeRollBackups value="40"/> 
    <maximumFileSize value="1MB"/> 
    <countDirection value="1"/> 
    <encoding value="utf-8"/> 
    <staticLogFileName value="false"/> 
    <layout type="log4net.Layout.PatternLayout"> 
    <conversionPattern value="%date{HH:mm:ss.fff}|%-5level|%message%newline"/> 
    </layout> 
</appender> 
+0

Спасибо. Это помогло. – Muthukumar

0

Попробуйте это решение, но только XAML

<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> 
     <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/> 
     <file value="logs\" /> 
     <datePattern value="dd.MM.yyyy'.log'" /> 
     <staticLogFileName value="false" /> 
     <appendToFile value="true" /> 
     <rollingStyle value="Composite" /> 
     <maxSizeRollBackups value="10" /> 
     <maximumFileSize value="5MB" /> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> 
     </layout> 
    </appender> 
Смежные вопросы