sunpengfei
2025-08-19 f7977851d2b5ba89bffb1fdc9630ba8a5df30395
FlexJobApi.Core/Utils/ResourceUtils/ResourceActionFilter.cs
@@ -25,12 +25,12 @@
        {
            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();
@@ -50,13 +50,13 @@
                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)
@@ -65,18 +65,18 @@
                }
                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(); // 释放流资源
            //}
        }
    }
}