2010-12-27 6 views
0

app.config内のタグの名前を変更できませんか?app.configのセクションの名前を変更するにはどうすればよいですか?セクション名が機能しません

私は予想通り、次の

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

すべてが(共通ロギングとロギングが行われている)に機能を使用する場合。 セクション名を変更すると、configは無視されます。グループ共通の名前を に変更すると、mycommonになります。

<sectionGroup name="mycommon"> 
    <section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" /> 
</sectionGroup> 
... 
<mycommon> 
    <logging> 
    <factoryAdapter type="Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4Net"> 
     <arg key="configType" value="INLINE" /> 
    </factoryAdapter> 
    </logging> 
</mycommon> 
... 

誰でもこのトリックを知っていますか?

答えて

1

...

public static class LogManager 
{ 
    /// <summary> 
    /// The name of the default configuration section to read settings from. 
    /// </summary> 
    /// <remarks> 
    /// You can always change the source of your configuration settings by setting another <see cref="IConfigurationReader"/> instance 
    /// on <see cref="ConfigurationReader"/>. 
    /// </remarks> 
    public static readonly string COMMON_LOGGING_SECTION = "common/logging"; 

    private static IConfigurationReader _configurationReader; 

だから、拡張/ LogManagerのを置き換える(または文字列を置き換え、IConfigurationReaderインタフェースを実装する新しいクラスを作成することができますが、これは一般的な再コンパイルが必要です.Logging)。

Common.Loggingのよくコメントされたコードをありがとう...私はデバッグ後にそれを得ました。

+0

最終的にそれが問題であることを理解するために私は半日かかりました...私はセクショングループを削除しました。突然、ログは一切ありませんでした。だから、ありがとう! – Speuline

1

XMLパスがlog4netに配線されている可能性があります。質問してみてください。溶液はコード自体で発見された

+0

これは別のHandlerで処理され、コードに配線されていないと思いますが、common.logging(common/loggingセクションについてはlog4netはラッパーとして機能します)を見ていきます。 – Beachwalker

+0

ところで、他のセクションハンドラの名前を変更することはできません(春など)。しかし、私はカスタムハンドラに関するチュートリアルを見てきました。タグは、libを使用している開発者によって選択されました。他のケースでは、2つのlibsがその構成に同じセクション名を使用すると問題が発生します。 – Beachwalker

+0

私は(速い)見た目を持っていて、期待通りに実装されています...最初の有線要素はfactoryAdapterなので、ハードコーディングされたコモン/ロギングの依存関係はありません。だからあなたの答えは解決策ではないようです。とにかく、おかげで。他のアイデア? – Beachwalker

関連する問題