您没有指定 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 内容相同的格式时才有效。否则,您可能必须根据配置参数的来源进行大量手动配置文件解析或数据库调用。