我想利用新的方法來記錄全局錯誤。我寫了一個繼承ExceptionLogger
的類,並覆蓋Log()
方法。然後將其註冊爲替代品。引用來自ExceptionLogger的動作參數
public class TraceExceptionLogger : ExceptionLogger
{
public async override void Log(ExceptionLoggerContext context)
{
// This is always empty string
var content = await context.Request.Content.ReadAsStringAsync();
// This is almost always null
var actionContext = context.ExceptionContext.ActionContext;
}
}
我可以通過ExceptionLoggerContext
對象的屬性挖掘得到幾乎我需要的一切,除了動作參數。確實有一個ActionContext
屬性,但我只看到它爲空,並且this wiki page指出ActionContext
和ControllerContext
幾乎總是爲空。
此外,我無法獲取內容流,因爲它的流在它到達我的記錄器之前已經被讀取。因此,我無法從請求的內容中獲取任何已發佈的json。
是否有辦法從HttpContext.Current
或其他方式獲取發佈的數據?
你救了我的屁股!我正要殺死自己。無法登錄請求內容令人感到非常沮喪。 –
@StefanVasiljevic我很高興它的幫助,我拯救了你的生命。我認爲這是我的代碼第一次做到這一點,哈哈。乾杯! – jlafay
@jlafay ..它不會是最後一個! 2017年11月,仍挽救生命! – CloudyOne