2009-12-17 79 views

回答

14

我結束了在看log4net的源確定我可以實現自己的appender,擴展FileAppender並覆蓋File屬性。

​​

我只是在我的配置中使用CWDFileAppender。

+0

嘿kiko,把這樣的更新在你的答案。保持線程清潔,除非你對自己的問題有正確的答案... – 2009-12-18 07:56:39

+1

這是對我自己問題的「正確」答案。 – 2009-12-21 21:28:21

+0

雖然我從RollingFileAppender繼承,但這對我很好。我也把它放在我使用的通用庫中,這樣我就可以在我的所有項目中使用它。如果你這樣做,記得在你的配置中指定程序集。 Stuntbeaver 2012-04-27 10:56:51

2

不從配置文件可能的,因爲每here

public static log4net.Appender.IAppender CreateFileAppender(string name, 
string fileName) 
{ 
    log4net.Appender.FileAppender appender = new 
log4net.Appender.FileAppender(); 
    appender.Name = name; 
    appender.File = fileName; 
    appender.AppendToFile = true; 

    log4net.Layout.PatternLayout layout = new 
log4net.Layout.PatternLayout(); 
    layout.ConversionPattern = "%d [%t] %-5p %c [%x] - %m%n"; 
    layout.ActivateOptions(); 

    appender.Layout = layout; 
    appender.ActivateOptions(); 

    return appender; 
} 

然後,您可以將其與記錄如下關聯:如果要手動從你的程序中,雖然配置它有可能

AddAppender("Log4net.MainForm", CreateFileAppender("FileAppender", 
Path.Combine(Directory.GetCurrentDirectory(), "foo.log"))); 
+0

這證實了我的想法。我用一個非常簡單的方式發佈了我自己的答案,使其可配置。 – 2009-12-21 21:29:41