log4net - Log4Net 多租户
问题描述
我已经阅读了很多 StackOverflow 问题并尝试了多个选项。我每个租户都有不同的数据库,并且正在尝试使用特定数据库的附加程序获取 ILog。我已经使用正确的数据库连接字符串成功创建了一个 AdoNetAppender 并将其放入 log4net 存储库根目录。
但是,当我向 LogManager 询问新的 ILog 时,它给了我一个没有附加程序的 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 Q/As 代码是: log4net - 获取特定于一个记录器的附加程序
在每次应用程序启动时在代码滚动中配置 log4net RollingFileAppender
我不确定为什么 LogManager 没有将配置的 AdoNetAppender 添加到它给我的 ILog 对象中,并且无法找到有关该功能的更多信息。
解决方案
推荐阅读
- html - 删除 Google 表格中的嵌入框架
- javascript - 如果邮件已发送,则显示弹出窗口(nodemailer)
- android - 多房间迁移导致android中的错误
- git - Eclipse中使用Git多开发者项目,如何处理需要不同资源的分支?
- python - 在python中检查回文数时运算符//的含义是什么
- c# - 有没有办法简化这个功能?
- reactjs - 当加载为真时,Mui 自动完成不显示加载微调器
- node.js - Netlify 上的 NextJS:部署没有成功;部署目录“out”不存在
- python - 每个用户“velocity_dif”大于 0 的次数
- python - pygame.sprite.spritecollide 只删除敌人