Awesome as always Milan! Thanks for continuing to produce top quality content. I look forward to giving this and Seq a go in future applications I write.
I must say that you are, in my opinion, the best software developer youtuber and not just in terms of .NET but in general. The way you structure your content, I haven't found that structure anywhere else. From long type videos to short videos and all the way to community, you provide knowledge on every day basis and you are always ready to respond to community that follows your work. Good job, wishing you all the best in the future and can't thank you enough!
Milan! You're mentioned on page 227 of Apps and Services with .NET 8 by Mark J. Price in the Serilog section! I was reading that to supplement this video.
Hi milan, I have gone almost all your videos regarding architecture and patterns. I really like your videos. I m insist you to create videos series on authorization and authentication. Cookie, JWT and even with SSO and OpenId Connect without using any third party libraries apart from Microsoft itself.
Log volume continues to grow over time. Seq can handle the substantial log data?? Are there specific considerations or best practices that need to be taken into account when implementing Seq?
Dear Milan, Thanks a lot for your comprehensive videos. Is SEQ recommended for production or maybe using ELK stack? Can I integrate health check with SEQ ? Thank you!
that is great video , can i use the same structuring of LogContext in azure application insights and make the search easy like this , because am suffering when searching and logging to application insights and it cost a lot of RUs
Great video i'm currently looking to implement logging in a project with the same structure as the project in this video with the result pattern. so far it would be good but how would i deal with unexpected exception i have the expected part handled with the result pattern like calling the saveChangesAsync, i wrapped it inside a result "still not sure if it is a good idea", but for the unexpected part i'm thinking i would have a try and catch wrapping the request in the middle but i don't think it's a good idea to have logging separated into two places. i would love to hear what do you think of this situation
Hello Milan! Great video! Posted a comment on one of your previous videos. Pasting it here as well: “An off topic question regardin DDD and Ef Core tracking. In a classic repository pattern approach you for instance have a update method which you call upon. But is that necessary in DDD? For instance lets say i have a BasketEntity with a list of ProductEntities. If I add a product to the basket I simply call the entity method "AddProductToBasket" and just call "SaveChangesAsync" method from unit of work in the handler, and create the new line in the Db. Is this a valid approach? Because in that case - u never have to include/use the update method since Ef Core tracks the changes.” Thanks in advance!
You don't. If you want to be purist you can use the Update method on a repo. In some cases, you'll simply need to have it to make it work with EF. As always, be pragmatic and do what works for you.
Thanks for the video, Milan, can I use Serilog throughout all the 4 Clean Architecture layers without violating its principles and without having to install the package again?
I noticed there is already a 'RequestId' property attached to the request logs which is the same property as the correlation Id. do we need the correlation id or we can just use the request Id ?
The value is the same, yes. That's the TraceIdentifier. However, if you want to share this across services it's better to use a custom structured log property
There's Scopes. You could create a scope from a middleware or MediatR pipeline and it would apply for all logs within: learn.microsoft.com/en-us/dotnet/api/microsoft.extensions.logging.loggerextensions.beginscope?view=net-8.0
Hello! And what about distributed logs ? From where context.TraceIdentifier is coming from and how to pass this value to other requests (if i'm accessing some API with HttpClient). I mean whether it is still necessary to use CorrelationId in http headers. And can u maybe explain difference beween TraceId from serilog, context.TraceIdentifier and RequestId from Serilog ?
If we use Warning for production, and later in time we need to see logs with Level "Information". Won't those logs be lost since SeriLog was skipping info logs in production ?
@@MilanJovanovicTech So isn't it safe to use level as "Information" in production as well instead of "Warning", in case we want to find or track a scenario.
Without water it 's crystal clear 😊 I need your help plz. your Result pattern was a real cream. i didn't miss your any video for last year. I did the following things for strong type return but it does not generate schema in Open API. public async Task Login( ISender sender, LoginRequestCommand command) { Result? result = await sender.Send(command); return result.Match( onSucceed: () => Results.Ok(result), onFailed: result.ToProblemDetails); }