3

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>

この構成セクションを他のファイルから取得する必要があります。

何か提案はありますか?

よろしくカホン

4

1 に答える 1

2

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))

これは、すべてのパラメーターを含む 1 つの構成ファイルがあり、標準の Common.Logging と同じ形式を使用している場合にのみ機能します。それ以外の場合は、構成パラメーターがどこから来ているかに応じて、手動で構成ファイルを解析したり、データベースを呼び出したりする必要があります。

于 2013-09-18T18:04:27.667 に答える