Log4Net多租户

时间:2019-04-25 17:47:51

标签: log4net

我已经阅读了很多StackOverflow问题,并尝试了多种选择。 我每个租户都有不同的数据库,并且正在尝试为特定数据库获取带有附加程序的ILog。 我已经使用正确的数据库连接字符串成功创建了一个AdoNetAppender,并将其放入log4net存储库根目录。

但是,当我向LogManager索要新的ILog时,它给了我一个没有附加程序的信息。如果我查看ILog实例的父级根,则添加了AdoNetAppender。我在做什么错了?

Hierarchy h = (Hierarchy)LogManager.GetRepository();
var adoAppender = Log4NetAdoAppenderHelper.LoadADONetAppender(service.GetBoxDbConnectionString());
h.Root.AddAppender(adoAppender);
log4net.Config.BasicConfigurator.Configure(h);

//Neither of these work to get an appender on the ILog (_logger1 or _logger2)
var _logger1 = log4net.LogManager.GetLogger("log4net-default-repository", "AdoNetAppender");
var _logger2 = log4net.LogManager.GetRepository().GetLogger(typeof(AdoNetAppender).FullName);

一些我广泛研究并尝试过的代码的StackOverflow问: log4net - getting appenders specific to only one logger

How to configure log4net programmatically from scratch (no config)

Enable file logging for log4net from code instead of from configuration

Configure log4net RollingFileAppender in code rolling once per application start

我不确定LogManager为什么不将配置的AdoNetAppender添加到它给我的ILog对象中,并且在找到更多有关该功能方面遇到困难。

0 个答案:

没有答案