web-dev-qa-db-ja.com

実行時にlog4netアペンダーを追加する方法は?

実行時にログアペンダーを追加するにはどうすればよいですか? (すべての既存のアペンダーは機能し続ける必要があります)
私はそれをこのように試しています:

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

ただし、ファイルには何も書き込まれません。

15
Steve Kero

また、アペンダーをロガーに追加する必要があります。こちらをご覧ください プログラムによるアペンダーの追加

使用しているロガーが、たとえばILog loggerの場合、次のようにします。

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

18