2016-07-12 20 views
0

Ich habe folgenden Code, um eine rollende Datei appender log4net hinzufügen.Log4net Appender programmgesteuert hinzufügen, aber das Layout funktioniert nicht

 ILog myLogger = LogManager.GetLogger("Audit"); 

     var auditAppender = new RollingFileAppender() 
     { 
      Name = "AuditAppender", 
      File = this.fullyQualifiedFileName, 
      DatePattern = "yyyyMMdd", 
      RollingStyle = RollingFileAppender.RollingMode.Date, 
      AppendToFile = true, 
      Layout = new PatternLayout() 
      { 
       ConversionPattern = "%newline %date %-5level %newline%message%newline", 
      }, 
     }; 

     auditAppender.ActivateOptions(); 

     log4net.Repository.Hierarchy.Logger l = (log4net.Repository.Hierarchy.Logger)myLogger.Logger; 
     l.AddAppender(auditAppender); 
     l.Repository.Configured = true; 

     myLogger.Info(message); 

Aber das Ergebnis scheint nicht meine ConversionPattern überhaupt zu folgen. Irgendeine Ahnung?

Antwort

2

Sie waren sehr, sehr nah ;-)

Das einzige, was Sie verpasst haben, die Sie PatternLayout.ActivateOptions auch anrufen müssen:

var auditAppender = new RollingFileAppender() 
{ 
    // snip 
} 

((PatternLayout)auditAppender.Layout).ActivateOptions(); 
auditAppender.ActivateOptions(); 
+1

Sehr gute Informationen! Es funktioniert jetzt. – hardywang