1

installutilイベント ログのイベント ソースを登録するカスタム インストーラー (を使用して実行) を必要とする Web アプリがあります。このインストーラー コードには定数 (具体的には、イベント ソースの名前) が含まれており、これもファイル内で繰り返されweb.configます。

この定数を 1 か所で定義する方法はありますか (「DRY」の原則に従って)。

詳細な背景: これは log4net イベント ログ アペンダー用であり、この log4net FAQに従って権限の問題を防ぐためにインストーラーが必要です。

4

1 に答える 1

1

一般的な問題の解決策ではありませんが、構成ファイルではなくコードで初期化できるように、カスタム log4net アペンダーを作成することで、この特定のケースを解決しました。

public sealed class EzeReportingEventLogAppender : EventLogAppender
{
    public EzeReportingEventLogAppender()
    {
        Layout = new PatternLayout(Configuration.EventLogPatternLayout);
        LogName = Configuration.EventLogName;
        ApplicationName = Configuration.EventLogApplicationName;
    }
}

および web.config で (含まれなくなりましたapplicationName):

<appender name="FatalAppender" type="EzeReporting.EzeReportingEventLogAppender">
  <filter type="log4net.Filter.LevelRangeFilter">
    <param name="LevelMin" value="FATAL" />
  </filter>
</appender>
于 2012-06-26T16:04:05.827 に答える