简体   繁体   English

如何在运行时添加 log4net appender?

[英]How to add log4net appender in runtime?

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.但它不会向文件写入任何内容。

You should also add the appender to a logger.您还应该将 appender 添加到记录器中。 Take a look here Adding Appenders programmatically看看这里以编程方式添加 Appenders

If the logger you are using is, for example ILog logger do:如果您使用的记录器是,例如ILog logger请执行以下操作:

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

var patternLayout = new log4net.Layout.PatternLayout { ConversionPattern = "%date %level %message%newline" }; patternLayout.ActivateOptions(); var rollingFileAppender = new log4net.Appender.RollingFileAppender { File = "MyApp.log", Layout = patternLayout }; rollingFileAppender.ActivateOptions(); var hierarchy = (log4net.Repository.Hierarchy.Hierarchy)log4net.LogManager.GetRepository(); hierarchy.Root.AddAppender(rollingFileAppender); hierarchy.Root.Level = log4net.Core.Level.All; // Default is Debug log4net.Config.BasicConfigurator.Configure(hierarchy);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM