C# 如何在运行时添加 log4net appender?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/19833362/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-10 15:57:30  来源:igfitidea点击:

How to add log4net appender in runtime?

c#.netlog4net

提问by Steve Kero

How do I add an extra log appender in runtime? (all pre-existing appenders must keep on working)
I'm trying it this way:

如何在运行时添加额外的日志附加程序?(所有预先存在的附加程序必须继续工作)
我正在尝试这样:

        var layout = new PatternLayout("%utcdate %-5level - %message%newline");
        layout.ActivateOptions();
        _log4netAppender = new FileAppender
            {
                Layout = layout,
                File = logFilePath,
            };
        _log4netAppender.ActivateOptions();
        BasicConfigurator.Configure(_log4netAppender);

but it doesn't write anything to the file.

但它不会向文件写入任何内容。

采纳答案by Salvatore Sorbello

You should also add the appender to a logger. Take a look here Adding Appenders programmatically

您还应该将 appender 添加到记录器中。看看这里以编程方式添加 Appenders

If the logger you are using is, for example ILog loggerdo:

例如,如果您使用的记录器是ILog logger

((log4net.Repository.Hierarchy.Logger)logger.Logger).AddAppender(appender)

((log4net.Repository.Hierarchy.Logger)logger.Logger).AddAppender(appender)