log4net:如何从 SQL Server 数据库中读取配置?

Posted

技术标签:

【中文标题】log4net:如何从 SQL Server 数据库中读取配置?【英文标题】:log4net: How to read configuration from SQL Server database? 【发布时间】:2021-09-15 11:05:17 【问题描述】:

我想将 log4net.config 存储在 sql server 数据库中,但不存储在文件中。 和 log4net 可以从 sql server 数据库中读取配置吗? 如何修改?

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4Net.config", Watch = true)]

【问题讨论】:

在您的应用程序启动时从您的 sql 存储读取设置,创建一个本地 xml 文件并将其提供给您的 log4net 配置? 你是对的,但我的想法是:创建 SQL CLR 过程 +log4net 用于从 T-SQL 写入日志。所以我想避免文件系统,首先是log4net.config文件。 【参考方案1】:

从数据库中读取您的配置数据,并在启动应用时使用 log4net.Config.XmlConfigurator.Configure 设置 log4net 配置

var configData = DataBaseHelper.GetConfigDataFromDataBase();
using (var MemoryStream ms = new MemoryStream(Encoding.ASCII.GetBytes(configData))
 
     log4net.Config.XmlConfigurator.Configure(ms);

【讨论】:

太棒了。一件事:这个 var configData = DataBaseHelper.GetConfigDataFromDataBase();可以简单地从数据库中读取 nvarchar (MAX) 字段吗? 这里显示了示例方法,您将在源代码中创建它,结果将是字符串 @MansurKurtov,您可以将配置 xml 存储在 xml 或 nvarchar(MAX) 类型的列中。其中一个Configure method overloads 采用XmlElement

以上是关于log4net:如何从 SQL Server 数据库中读取配置?的主要内容,如果未能解决你的问题,请参考以下文章

无权使用 log4net 从 .NET 应用程序写入 Windows Server 2008 上的磁盘

如何从 log4net 中的存储过程插入数据库?

如何使用 log4net 日志框架

如何使用 BCP 或 Sql Server Management Studio 从 Sql Server 中获取 BLOB 数据?

如何从 sql server 将数据导入 mongodb?

如何从 SQL Server 中检索数据?