Table of Contents

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

logger ILogger<T>

The logger, which must be an ILoggerWrapper<T>.

methodName string

The name of the calling member; filled in by the compiler.

Returns

ILoggerWrapper<T>

The logger wrapper positioned on the Business category.

Type Parameters

T

The category type of the logger.

Exceptions

InvalidOperationException

logger is 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

logger ILogger

The non-generic logger, which must be an ILoggerWrapper<T> of DefaultLogger.

category MessageCategory

The category: a predefined value or a value registered with Register(string, MessageCategory).

specificType Type

The type written in the Class property.

methodName string

The name of the calling member; filled in by the compiler.

Returns

ILoggerWrapper<DefaultLogger>

The logger wrapper positioned on category.

Exceptions

InvalidOperationException

logger is 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

logger ILogger<T>

The logger, which must be an ILoggerWrapper<T>.

category MessageCategory

The category: a predefined value or a value registered with Register(string, MessageCategory).

methodName string

The 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

T

The 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

logger is 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

logger ILogger

The non-generic logger, which must be an ILoggerWrapper<T> of DefaultLogger.

specificType Type

The type written in the Class property.

methodName string

The name of the calling member; filled in by the compiler.

Returns

ILoggerWrapper<DefaultLogger>

The logger wrapper positioned on the Monitoring category.

Exceptions

InvalidOperationException

logger is 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

logger ILogger<T>

The logger, which must be an ILoggerWrapper<T>.

methodName string

The name of the calling member; filled in by the compiler.

Returns

ILoggerWrapper<T>

The logger wrapper positioned on the Monitoring category.

Type Parameters

T

The category type of the logger.

Exceptions

InvalidOperationException

logger is 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

logger ILogger

The non-generic logger, which must be an ILoggerWrapper<T> of DefaultLogger.

specificType Type

The type written in the Class property.

methodName string

The name of the calling member; filled in by the compiler.

Returns

ILoggerWrapper<DefaultLogger>

The logger wrapper positioned on the Technical category.

Exceptions

InvalidOperationException

logger is 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

logger ILogger

The non-generic logger, which must be an ILoggerWrapper<T> of DefaultLogger.

methodName string

The name of the calling member; filled in by the compiler.

Returns

ILoggerWrapper<DefaultLogger>

The logger wrapper positioned on the Technical category.

Type Parameters

T

The type written in the Class property.

Exceptions

InvalidOperationException

logger is 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

logger ILogger<T>

The logger, which must be an ILoggerWrapper<T>.

methodName string

The name of the calling member; filled in by the compiler.

Returns

ILoggerWrapper<T>

The logger wrapper positioned on the Technical category.

Type Parameters

T

The category type of the logger.

Exceptions

InvalidOperationException

logger is not an Arc4u ILoggerWrapper<T>.