私は Log4Net を使用しており、XML 構成ファイルを使用する代わりに、fileAppender と AdoNetAppender の両方を完全にコードで作成しています。adoNetAppender は、指定されたデータベースに接続できない場合、エラーをスローするのではなく、消費してコンソール ウィンドウに書き込みます。これでは捕まえられません。最終的には、構成エラーをキャッチし、DB がダウンした場合に備えて fileAppender をロードしたいと考えています。
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 ステートメントにヒットすることはありません。
対処法について何かアドバイスはありますか?