Apakah ada cara untuk menangkap pengecualian yang ditangani ketika CreateErrorResponse() digunakan untuk mengembalikan respons Kesalahan dengan metode API? Saat ini saya telah mendaftarkan logger pengecualian global sederhana untuk pengecualian apa pun, namun untuk beberapa respons api termasuk atribut Model Filter, saya CreateErrorResponse() untuk mengembalikan respons kesalahan tetapi ini tidak memasukkan metode Log() di Global Exception Logger . Contoh penggunaan CreateErrorResponse dalam metode API :
return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e);
Pencatat Pengecualian Global:
public class GlobalExceptionLogger : ExceptionLogger
{
private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
public override void Log(ExceptionLoggerContext context)
{
log.Error(context.Exception);
}
}
Satu-satunya cara agar metode Log() dipanggil adalah daripada menggunakan CreateErrorResponse, melainkan melemparkan Exception. Apakah ini benar?