私はLog4Netを使用していますが、XML構成ファイルを使用する代わりに、fileAppenderとAdoNetAppenderの両方をコードで完全に構築しています。 adoNetAppenderが指定されたデータベースに接続できない場合、それを消費し、スローする代わりにコンソールウィンドウにエラーを書き込みます。これは私が捕まえることが不可能になります。最終的に私は構成エラーをキャッチし、DBがダウンしているときにfileAppenderをロードしたいと思います。Log4Net経由で生成されたAdoNetAppenderエラーの処理
try {
log4net.Repository.Hierarchy.Hierarchy hier = log4net.LogManager.GetRepository() as log4net.Repository.Hierarchy.Hierarchy;
if (hier != null)
{
log4net.Appender.AdoNetAppender adoAppender = new log4net.Appender.AdoNetAppender();
adoAppender.Name = "AdoNetAppender";
// more code..
}
catch (Exception ex)
{
LoadFileAppender(level);
Log log = new Log("AdoAdaptorFail");
log.Error("AdoAdaptor Failed", "System", ex);
}
このエラーが発生するため、このcatchステートメントは決してヒットしません。
扱いに関するアドバイスはありますか?
それは私が欲しいとは思わない、私は再接続しようとしたくない、私はfileAppenderに切り替えるしたいと思います。 – tap
それを考え出した。私のErrorHandlerを書いてインタフェースとして使用しなければならなかったのですが、組み込みのエラーハンドラを拡張するインタフェース内で、私はfileAdaptorに切り替えるために自分のメソッドを呼び出すことができました – tap