| | |
| | | { |
| | | var stopwatch = Stopwatch.StartNew(); |
| | | |
| | | StringWriter consoleWriter = new(); |
| | | TextWriter originalConsoleOut = Console.Out; |
| | | //StringWriter consoleWriter = new(); |
| | | //TextWriter originalConsoleOut = Console.Out; |
| | | |
| | | try |
| | | { |
| | | Console.SetOut(consoleWriter); |
| | | //try |
| | | //{ |
| | | // Console.SetOut(consoleWriter); |
| | | |
| | | var serviceScopeFactory = App.GetService<IServiceScopeFactory>(); |
| | | var serviceScope = serviceScopeFactory.CreateScope(); |
| | |
| | | resourceLog.Request = context.ActionArguments?.ToJson(); |
| | | resourceLog.RequestHeaders = context.HttpContext.Request.Headers.ToJson(); |
| | | |
| | | Console.SetOut(originalConsoleOut); |
| | | //Console.SetOut(originalConsoleOut); |
| | | await rep.InsertNowAsync(resourceLog); |
| | | Console.SetOut(consoleWriter); |
| | | //Console.SetOut(consoleWriter); |
| | | |
| | | //============== 这里是执行方法之后获取数据 ==================== |
| | | var actionContext = await next(); |
| | | Console.SetOut(originalConsoleOut); |
| | | //Console.SetOut(originalConsoleOut); |
| | | |
| | | resourceLog.UpdatedTime = DateTimeOffset.Now; |
| | | if (actionContext.Result is JsonResult jsonResult) |
| | |
| | | } |
| | | resourceLog.ResponseHeaders = context.HttpContext.Response.Headers.ToJson(); |
| | | resourceLog.IsSuccess = actionContext.Exception == null; |
| | | resourceLog.ConsoleLogs = consoleWriter.ToString(); |
| | | //resourceLog.ConsoleLogs = consoleWriter.ToString(); |
| | | |
| | | stopwatch.Stop(); |
| | | resourceLog.ElapsedMilliseconds = stopwatch.ElapsedMilliseconds; |
| | | |
| | | await rep.UpdateNowAsync(resourceLog); |
| | | } |
| | | finally |
| | | { |
| | | Console.SetOut(originalConsoleOut); // 恢复 Console 原始输出流 |
| | | consoleWriter.Dispose(); // 释放流资源 |
| | | } |
| | | //} |
| | | //finally |
| | | //{ |
| | | // Console.SetOut(originalConsoleOut); // 恢复 Console 原始输出流 |
| | | // consoleWriter.Dispose(); // 释放流资源 |
| | | //} |
| | | } |
| | | } |
| | | } |