gpt4 book ai didi

.net - Common.Logging 没有 app.config

转载 作者:行者123 更新时间:2023-12-02 01:57:56 25 4
gpt4 key购买 nike

我正在尝试使用 Common.Logging,但我们不使用 app.config,我们的参数位于多个 xml 配置文件或数据库中。

我如何告诉 Common.Logging 从其他文件获取工厂适配器?

<common>
<logging>
<factoryAdapter type="Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4Net">
<arg key="configType" value="INLINE" />
</factoryAdapter>
</logging>
</common>

我需要从另一个文件中获取这个配置部分。

有什么建议吗?

最佳成绩木鼓

最佳答案

您没有指定 Common.Logging 的版本,但我假定它基于 2.1。

我认为您可以通过实现 Common.Logging.IConfigurationReader 来做到这一点,类似于以下内容:

Imports System.Xml

Public Class ConfigReader
Implements Common.Logging.IConfigurationReader

Private _configPath As String

Public Sub New(configPath As String)
_configPath = configPath
End Sub

Public Function GetSection(sectionName As String) As Object Implements Common.Logging.IConfigurationReader.GetSection
Dim xmlDoc As New XmlDocument()
xmlDoc.Load(_configPath)

Return (New Common.Logging.ConfigurationSectionHandler()).Create(Nothing, Nothing, xmlDoc.SelectSingleNode("configuration/" & sectionName))
End Function
End Class

然后在应用程序启动时你可以调用

Common.Logging.LogManager.Reset(New ConfigReader(pathToConfigFile))

当然,只有当您拥有一个包含所有参数的配置文件并且它使用与标准 Common.Logging 内容相同的格式时,这才会起作用。否则,您可能需要根据配置参数的来源进行大量手动配置文件解析或数据库调用。

关于.net - Common.Logging 没有 app.config,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18870779/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com