【问题标题】:log4net: How to read configuration from SQL Server database?log4net:如何从 SQL Server 数据库中读取配置?
【发布时间】: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文件。

标签: c# sql-server log4net log4net-configuration


【解决方案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
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多