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 上的磁盘
如何使用 BCP 或 Sql Server Management Studio 从 Sql Server 中获取 BLOB 数据?