Oct 30 2023
public static partial class Log { [LoggerMessage( EventId = 0, Level = LogLevel.Critical, Message = "Could not open socket to `{HostName}`") ] public static partial void CouldNotOpenSocket( ILogger logger, string hostName); }
public partial class InstanceLoggingExample { private readonly ILogger _logger; public InstanceLoggingExample(ILogger logger) { _logger = logger; } [LoggerMessage( EventId = 0, Level = LogLevel.Critical, Message = "Could not open socket to `{HostName}`") ] public partial void CouldNotOpenSocket(string hostName); }
public static partial class Log { [LoggerMessage( EventId = 0, Message = "Could not open socket to `{HostName}`") ] public static partial void CouldNotOpenSocket( ILogger logger, LogLevel level, /* Dynamic log level as parameter, rather than defined in attribute. */ string hostName); }
1. Design Patterns that Deliver
This isn’t just another design patterns book. Dive into real-world examples and practical solutions to real problems in real applications.Check out it here.
Go-to resource for understanding the core concepts of design patterns without the overwhelming complexity. In this concise and affordable ebook, I've distilled the essence of design patterns into an easy-to-digest format. It is a Beginner level. Check out it here.
Every Monday morning, I share 1 actionable tip on C#, .NET & Arcitecture topic, that you can use right away.
Join 18,000+ subscribers to improve your .NET Knowledge.
Subscribe to the TheCodeMan.net and be among the 18,000+ subscribers gaining practical tips and resources to enhance your .NET expertise.
Powered by EmailOctopus