You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
And for our asp.net code that runs in fargate, this has worked fine to capture the response size, and ensure it gets saved for serilog:
public class MySizeLoggingMiddleware
{
private readonly RequestDelegate _next;
private readonly Serilog.IDiagnosticContext diagnosticContext;
public MySizeLoggingMiddleware(RequestDelegate next, Serilog.IDiagnosticContext diagnosticContext)
{
_next = next;
this.diagnosticContext = diagnosticContext;
}
public async Task InvokeAsync(HttpContext context)
{
if (context.Response.HasStarted) {
throw new Exception("Cannot buffer response, it has already started");
}
var originalStream = context.Response.Body;
using var bufferedStream = new MemoryStream();
context.Response.Body = bufferedStream;
try {
await _next(context);
} catch (Exception) {
Log.Warning("Exception was thrown, resetting body (developer exception page might write to it)");
context.Response.Body = originalStream;
throw;
}
// Get the buffered content size, and save it for serilog request logging
long contentSize = bufferedStream.Length;
diagnosticContext.Set("ResponseSize", contentSize);
context.Response.Body = originalStream;
bufferedStream.Seek(0, SeekOrigin.Begin);
await bufferedStream.CopyToAsync(originalStream);
}
}
However when using Amazon.Lambda.AspNetCoreServer.Hosting, inside Lambda, the size is always reported & logged as 0, meaning nothing is actually writing to the memory stream I'm creating. The same codebase works fine when run using dotnet run.
Regression Issue
Select this option if this issue appears to be a regression.
Expected Behavior
.
Current Behavior
.
Reproduction Steps
.
Possible Solution
No response
Additional Information/Context
No response
AWS .NET SDK and/or Package version used
Amazon.Lambda.AspNetCoreServer.Hosting
Targeted .NET Platform
.net 8
Operating System and version
lambda
The text was updated successfully, but these errors were encountered:
Describe the bug
Not sure if this a bug or feature request, but how can I log all response sizes?
We currently use serilog request logging middleware: https://github.com/serilog/serilog-aspnetcore?tab=readme-ov-file#request-logging
And for our asp.net code that runs in fargate, this has worked fine to capture the response size, and ensure it gets saved for serilog:
However when using
Amazon.Lambda.AspNetCoreServer.Hosting
, inside Lambda, the size is always reported & logged as 0, meaning nothing is actually writing to the memory stream I'm creating. The same codebase works fine when run usingdotnet run
.Regression Issue
Expected Behavior
.
Current Behavior
.
Reproduction Steps
.
Possible Solution
No response
Additional Information/Context
No response
AWS .NET SDK and/or Package version used
Amazon.Lambda.AspNetCoreServer.Hosting
Targeted .NET Platform
.net 8
Operating System and version
lambda
The text was updated successfully, but these errors were encountered: