Class ILoggerExtensions
- Namespace
- Arc4u.Diagnostics
- Assembly
- Arc4u.Diagnostics.dll
Extension methods on ILogger and ILogger<TCategoryName> that select the Arc4u message category (MessageCategory) and return an ILoggerWrapper<T> on which properties can be added fluently before the message is written.
public static class ILoggerExtensions
- Inheritance
-
ILoggerExtensions
- Inherited Members
Examples
_logger.Technical().Add("OrderId", orderId).LogInformation("Order processed.");
Remarks
The logger must have been resolved from a container configured with AddILogger(IServiceCollection); otherwise an InvalidOperationException is thrown.
Methods
Business<T>(ILogger<T>, string)
Starts a log entry in the Business category (messages for IT and business people).
public static ILoggerWrapper<T> Business<T>(this ILogger<T> logger, string methodName = "")
Parameters
loggerILogger<T>The logger, which must be an ILoggerWrapper<T>.
methodNamestringThe name of the calling member; filled in by the compiler.
Returns
- ILoggerWrapper<T>
The logger wrapper positioned on the Business category.
Type Parameters
TThe category type of the logger.
Exceptions
- InvalidOperationException
loggeris not an Arc4u ILoggerWrapper<T>.
Category(ILogger, MessageCategory, Type, string)
Starts a log entry in any category for a non-generic ILogger, using specificType as the source context.
public static ILoggerWrapper<DefaultLogger> Category(this ILogger logger, MessageCategory category, Type specificType, string methodName = "")
Parameters
loggerILoggerThe non-generic logger, which must be an ILoggerWrapper<T> of DefaultLogger.
categoryMessageCategoryThe category: a predefined value or a value registered with Register(string, MessageCategory).
specificTypeTypeThe type written in the Class property.
methodNamestringThe name of the calling member; filled in by the compiler.
Returns
- ILoggerWrapper<DefaultLogger>
The logger wrapper positioned on
category.
Exceptions
- InvalidOperationException
loggeris not an Arc4u ILoggerWrapper<T> of DefaultLogger.
Category<T>(ILogger<T>, MessageCategory, string)
Starts a log entry in any category, predefined or invented by the application. The Category property is written with the name given by GetName(MessageCategory). Use it to write your own category extension methods.
public static ILoggerWrapper<T> Category<T>(this ILogger<T> logger, MessageCategory category, string methodName = "")
Parameters
loggerILogger<T>The logger, which must be an ILoggerWrapper<T>.
categoryMessageCategoryThe category: a predefined value or a value registered with Register(string, MessageCategory).
methodNamestringThe name of the calling member; filled in by the compiler. An extension method that calls this one must forward its own
[CallerMemberName]parameter.
Returns
- ILoggerWrapper<T>
The logger wrapper positioned on
category.
Type Parameters
TThe category type of the logger.
Examples
public static class SecurityLoggerExtensions
{
public const MessageCategory SecurityCategory = (MessageCategory)8;
static SecurityLoggerExtensions() => MessageCategoryRegistry.Register("Security", SecurityCategory);
public static ILoggerWrapper<T> Security<T>(this ILogger<T> logger, [CallerMemberName] string methodName = "") =>
logger.Category(SecurityCategory, methodName);
}
_logger.Security().Add("User", user).LogWarning("Access denied.");
Exceptions
- InvalidOperationException
loggeris not an Arc4u ILoggerWrapper<T>.
Monitoring(ILogger, Type, string)
Starts a log entry in the Monitoring category for a non-generic ILogger, using specificType as the source context.
public static ILoggerWrapper<DefaultLogger> Monitoring(this ILogger logger, Type specificType, string methodName = "")
Parameters
loggerILoggerThe non-generic logger, which must be an ILoggerWrapper<T> of DefaultLogger.
specificTypeTypeThe type written in the Class property.
methodNamestringThe name of the calling member; filled in by the compiler.
Returns
- ILoggerWrapper<DefaultLogger>
The logger wrapper positioned on the Monitoring category.
Exceptions
- InvalidOperationException
loggeris not an Arc4u ILoggerWrapper<T> of DefaultLogger.
Monitoring<T>(ILogger<T>, string)
Starts a log entry in the Monitoring category (monitoring purposes).
public static ILoggerWrapper<T> Monitoring<T>(this ILogger<T> logger, string methodName = "")
Parameters
loggerILogger<T>The logger, which must be an ILoggerWrapper<T>.
methodNamestringThe name of the calling member; filled in by the compiler.
Returns
- ILoggerWrapper<T>
The logger wrapper positioned on the Monitoring category.
Type Parameters
TThe category type of the logger.
Exceptions
- InvalidOperationException
loggeris not an Arc4u ILoggerWrapper<T>.
Technical(ILogger, Type, string)
Starts a log entry in the Technical category for a non-generic ILogger, using specificType as the source context.
public static ILoggerWrapper<DefaultLogger> Technical(this ILogger logger, Type specificType, string methodName = "")
Parameters
loggerILoggerThe non-generic logger, which must be an ILoggerWrapper<T> of DefaultLogger.
specificTypeTypeThe type written in the Class property.
methodNamestringThe name of the calling member; filled in by the compiler.
Returns
- ILoggerWrapper<DefaultLogger>
The logger wrapper positioned on the Technical category.
Exceptions
- InvalidOperationException
loggeris not an Arc4u ILoggerWrapper<T> of DefaultLogger.
Technical<T>(ILogger, string)
Starts a log entry in the Technical category for a non-generic ILogger, using T as the source context.
public static ILoggerWrapper<DefaultLogger> Technical<T>(this ILogger logger, string methodName = "")
Parameters
loggerILoggerThe non-generic logger, which must be an ILoggerWrapper<T> of DefaultLogger.
methodNamestringThe name of the calling member; filled in by the compiler.
Returns
- ILoggerWrapper<DefaultLogger>
The logger wrapper positioned on the Technical category.
Type Parameters
TThe type written in the Class property.
Exceptions
- InvalidOperationException
loggeris not an Arc4u ILoggerWrapper<T> of DefaultLogger.
Technical<T>(ILogger<T>, string)
Starts a log entry in the Technical category (messages for IT people).
public static ILoggerWrapper<T> Technical<T>(this ILogger<T> logger, string methodName = "")
Parameters
loggerILogger<T>The logger, which must be an ILoggerWrapper<T>.
methodNamestringThe name of the calling member; filled in by the compiler.
Returns
- ILoggerWrapper<T>
The logger wrapper positioned on the Technical category.
Type Parameters
TThe category type of the logger.
Exceptions
- InvalidOperationException
loggeris not an Arc4u ILoggerWrapper<T>.