2009-12-17 3 views

Répondre

14

J'ai fini par regarder la source de log4net et déterminé je peux mettre en application mon propre appender qui étend FileAppender et remplace la propriété de fichier.

Je viens d'utiliser CWDFileAppender dans ma configuration.

+0

Hey kiko, mettre de telles mises à jour dans votre réponse. maintient le fil propre, sauf si vous avez la bonne réponse à votre propre question ... –

+1

Ceci est la "bonne" réponse à ma propre question. –

+0

Cela a bien fonctionné pour moi, même si j'ai hérité de RollingFileAppender. Je l'ai également mis dans une bibliothèque commune que j'utilise pour l'utiliser dans tous mes projets. N'oubliez pas de spécifier l'assemblage dans votre configuration si vous le faites. Stuntbeaver

2

pas possible à partir du fichier de configuration, comme par here . Il peut être possible que si vous configurez manuellement à l'intérieur de votre programme si:

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

Vous pouvez ensuite l'associer à l'enregistreur comme suit:

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

Cela confirme ce à quoi je pensais. J'ai posté ma propre réponse avec un moyen assez facile de le rendre configurable. –