0

win-formアプリケーションでEnterpriseLibrary5.0を使用しています。

1.エンタープライズライブラリオブジェクトのインスタンスの作成について

ロギング/例外オブジェクトの参照を解決するための最良の方法は何ですか?私たちのアプリケーションでは、ソリューションにさまざまなアプリケーションがあります。したがって、ソリューションには以下のプロジェクトがあります。

CommonLib(Class Lib)CustomerApp(winform app)CustWinService(win service proj)ClassLib2(class Lib)

CommonLibプロジェクトで以下のようにロギング/例外を実装しました。以下のようにクラスAppLogを作成しました。

 public class AppLog
    {
        public static LogWriter defaultWriter = EnterpriseLibraryContainer.Current.GetInstance<LogWriter>();
public static ExceptionManager exManager = EnterpriseLibraryContainer.Current.GetInstance<ExceptionManager>();
        public AppLog()
        {
        }

    public static void WriteLog(string LogMessage, string LogCategories)
    {
        // Create a LogEntry and populate the individual properties.
            if (defaultWriter.IsLoggingEnabled())
            {
                string[] Logcat = LogCategories.Split(",".ToCharArray());
                LogEntry entry2 = new LogEntry();
                entry2.Categories = Logcat;
                entry2.EventId = 9007;
                entry2.Message = LogMessage;
                entry2.Priority = 9;
                entry2.Title = "Logging Block Examples";
                defaultWriter.Write(entry2);
            }
    }
}

次に、さまざまなプロジェクトでのロギングと例外のために、以下のようにApplogクラスを使用しました。

            try
            {
                AppLog.WriteLog("This is Production Log Entry.", "ExceCategory");
                string strtest = string.Empty;
                strtest = strtest.Substring(1);
            }
            catch (Exception ex)
            {

                bool rethrow = AppLog.exManager.HandleException(ex, "ExcePolicy");

            }

では、ロギングと例外を使用する正しい方法は?または私がそれを改善できる他の方法はありますか?

2.動的なログファイル名

ロギングブロックには、app.configファイルで設定する必要のあるfileNameがあります。コーディングを通じてfileName値を動的に割り当てる方法はありますか?構成ファイルにハードコーディングしたくないので、本番環境と開発環境ではパスが異なります。

ありがとうTShah

4

1 に答える 1

0

アプリケーションを疎結合にしてテストしやすくするために、個別のロギング インターフェイスと例外処理インターフェイスを定義してから、AppLogクラスに両方を実装することをお勧めします。アプリケーションはAppLog、実装を提供することで、これらのインターフェースを介してロギングと例外処理を実行できます。

構成変換を使用して、環境ごとに異なるファイル名を設定できます。これは、 Slow Cheetahを使用して winforms アプリケーションで使用できると思います。

于 2012-12-05T08:52:09.713 に答える