# ILogConsistencyProtocolServices Methods

[Type overview](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleans.eventsourcing.ilogconsistencyprotocolservices/)

## CaughtException(string, Exception) {#caughtexception-string-system-exception-d3fa44e9}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleans.eventsourcing.ilogconsistencyprotocolservices/methods/caughtexception-string-system-exception-d3fa44e9/)

```csharp
public abstract void CaughtException(string where, Exception e)
```

Log an exception that was caught in the log-consistency protocol.

### Parameters

- `where` (`string`)
- `e` (`Exception`)

## CaughtUserCodeException(string, string, Exception) {#caughtusercodeexception-string-string-system-exception-05f4427b}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleans.eventsourcing.ilogconsistencyprotocolservices/methods/caughtusercodeexception-string-string-system-exception-05f4427b/)

```csharp
public abstract void CaughtUserCodeException(string callback, string where, Exception e)
```

Log an exception that occurred in user code, for some callback

### Parameters

- `callback` (`string`): The name of the callback
- `where` (`string`): The context from which the callback was called
- `e` (`Exception`): The caught exception

## DeepCopy(T) {#deepcopy-1-t-b1e0a1f6}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleans.eventsourcing.ilogconsistencyprotocolservices/methods/deepcopy-1-t-b1e0a1f6/)

```csharp
public abstract T DeepCopy<T>(T value)
```

Copies the provided argument.

### Parameters

- `value` (`T`)

## Log(LogLevel, string, object[]) {#log-microsoft-extensions-logging-loglevel-string-params-object-array-1-898746ac}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleans.eventsourcing.ilogconsistencyprotocolservices/methods/log-microsoft-extensions-logging-loglevel-string-params-object-array-1-898746ac/)

```csharp
public abstract void Log(LogLevel level, string format, params object[] args)
```

Output the specified message at the specified log level.

### Parameters

- `level` (`LogLevel`)
- `format` (`string`)
- `args` (`object[]`)

## ProtocolError(string, bool) {#protocolerror-string-bool-bca473f3}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleans.eventsourcing.ilogconsistencyprotocolservices/methods/protocolerror-string-bool-bca473f3/)

```csharp
public abstract void ProtocolError(string msg, bool throwexception)
```

Log an error that occurred in a log-consistency protocol.

### Parameters

- `msg` (`string`)
- `throwexception` (`bool`)
