---
title: "Interface ILogger"
slug: "sdk--stylelabs.m.sdk.contracts.logging.ilogger"
abstract: ""
---
# Interface ILogger

Base interface for SDK loggers.

## Namespace: StylelabsStylelabs.MSdkStylelabs.M.Sdk.ContractsLogging

## Assembly: Stylelabs.M.Sdk.dll

## Syntax

```csharp
public interface ILogger
```

## Remarks

Performance tips:

- For static or constant strings, construct and pass the string directly.
- For dynamic strings that require IO, make sure to pass a to the logger.
- It is recommended to always pass a for debugging messages. This way, when debugging is disabled, the debug calls will have virtually no overhead. If you construct and pass strings directly, it will always have more overhead.

## Properties

### IsDebugEnabled

Gets a value indicating whether debug-level logging is enabled.

#### Declaration

```csharp
bool IsDebugEnabled { get; }
```

#### Property Value

| Type | Description |
| --- | --- |
| bool |  |

### IsErrorEnabled

Gets a value indicating whether error-level logging is enabled.

#### Declaration

```csharp
bool IsErrorEnabled { get; }
```

#### Property Value

| Type | Description |
| --- | --- |
| bool |  |

### IsInfoEnabled

Gets a value indicating whether info-level logging is enabled.

#### Declaration

```csharp
bool IsInfoEnabled { get; }
```

#### Property Value

| Type | Description |
| --- | --- |
| bool |  |

### IsWarnEnabled

Gets a value indicating whether warning-level logging is enabled.

#### Declaration

```csharp
bool IsWarnEnabled { get; }
```

#### Property Value

| Type | Description |
| --- | --- |
| bool |  |

### MinimumLogLevel

Gets or sets the minimum enabled log level.

#### Declaration

```csharp
LogLevel MinimumLogLevel { get; set; }
```

#### Property Value

| Type | Description |
| --- | --- |
| [LogLevel](https://doc.sitecore.com/ch/en/developers/api-reference/sdk--stylelabs.m.sdk.contracts.logging.loglevel.html) |  |

## Methods

### Debug(Func<string>)

Logs debug-level information.

#### Declaration

```csharp
void Debug(Func<string> message)
```

#### Parameters

| Type | Name | Description |
| --- | --- | --- |
| Func<>string | message | Function that generates the log message. |

### Debug(string)

Logs debug-level information.

#### Declaration

```csharp
void Debug(string message)
```

#### Parameters

| Type | Name | Description |
| --- | --- | --- |
| string | message | Message to log. |

### DebugAsync(Func<Task<string>>)

Async version of [Debug(Func<string>)](https://doc.sitecore.com/ch/en/developers/api-reference/sdk--stylelabs.m.sdk.contracts.logging.ilogger.html).

#### Declaration

```csharp
Task DebugAsync(Func<Task<string>> message)
```

#### Parameters

| Type | Name | Description |
| --- | --- | --- |
| Func<>Task<>string | message | Message to log. |

#### Returns

| Type | Description |
| --- | --- |
| Task | A representing the asynchronous operation. |

### Error(Exception)

Logs error-level information.

#### Declaration

```csharp
void Error(Exception exception)
```

#### Parameters

| Type | Name | Description |
| --- | --- | --- |
| Exception | exception | The exception that occurred. |

### Error(Func<string>, Exception)

Logs error-level information.

#### Declaration

```csharp
void Error(Func<string> message, Exception exception = null)
```

#### Parameters

| Type | Name | Description |
| --- | --- | --- |
| Func<>string | message | Function that generates the log message. |
| Exception | exception | The exception that occurred. |

### Error(string, Exception)

Logs error-level information.

#### Declaration

```csharp
void Error(string message, Exception exception = null)
```

#### Parameters

| Type | Name | Description |
| --- | --- | --- |
| string | message | Message to log. |
| Exception | exception | The exception that occurred. |

### ErrorAsync(Func<Task<string>>, Exception)

Async version of [Error(Func<string>, Exception)](https://doc.sitecore.com/ch/en/developers/api-reference/sdk--stylelabs.m.sdk.contracts.logging.ilogger.html).

#### Declaration

```csharp
Task ErrorAsync(Func<Task<string>> message, Exception exception = null)
```

#### Parameters

| Type | Name | Description |
| --- | --- | --- |
| Func<>Task<>string | message | Function that generates the log message. |
| Exception | exception | The exception that occurred. |

#### Returns

| Type | Description |
| --- | --- |
| Task | A representing the asynchronous operation. |

### Info(Func<string>)

Logs info-level information.

#### Declaration

```csharp
void Info(Func<string> message)
```

#### Parameters

| Type | Name | Description |
| --- | --- | --- |
| Func<>string | message | Function that generates the log message. |

### Info(string)

Logs info-level information.

#### Declaration

```csharp
void Info(string message)
```

#### Parameters

| Type | Name | Description |
| --- | --- | --- |
| string | message | Message to log. |

### InfoAsync(Func<Task<string>>)

Async version of [Info(Func<string>)](https://doc.sitecore.com/ch/en/developers/api-reference/sdk--stylelabs.m.sdk.contracts.logging.ilogger.html).

#### Declaration

```csharp
Task InfoAsync(Func<Task<string>> message)
```

#### Parameters

| Type | Name | Description |
| --- | --- | --- |
| Func<>Task<>string | message | Function that generates the log message. |

#### Returns

| Type | Description |
| --- | --- |
| Task | A representing the asynchronous operation. |

### Warn(Func<string>)

Logs warning-level information.

#### Declaration

```csharp
void Warn(Func<string> message)
```

#### Parameters

| Type | Name | Description |
| --- | --- | --- |
| Func<>string | message | Function that generates the log message. |

### Warn(string)

Logs warning-level information.

#### Declaration

```csharp
void Warn(string message)
```

#### Parameters

| Type | Name | Description |
| --- | --- | --- |
| string | message | Message to log. |

### WarnAsync(Func<Task<string>>)

Async version of [Warn(Func<string>)](https://doc.sitecore.com/ch/en/developers/api-reference/sdk--stylelabs.m.sdk.contracts.logging.ilogger.html).

#### Declaration

```csharp
Task WarnAsync(Func<Task<string>> message)
```

#### Parameters

| Type | Name | Description |
| --- | --- | --- |
| Func<>Task<>string | message | Function that generates the log message. |

#### Returns

| Type | Description |
| --- | --- |
| Task | A representing the asynchronous operation. |

## Events

### OnLog

Fires an event just before something is about to be logged.

#### Declaration

```csharp
event EventHandler<LogEventArgs> OnLog
```

#### Event Type

| Type | Description |
| --- | --- |
| EventHandler<>[LogEventArgs](https://doc.sitecore.com/ch/en/developers/api-reference/sdk--stylelabs.m.sdk.contracts.logging.logeventargs.html) |  |
