# Interface IProcessLogProvider OptimaJet.Workflow.Core.Logging.IProcessLogProvider Defines a provider that stores and retrieves [ProcessLogEntry](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Logging/ProcessLogEntry/) instances for workflow processes. Namespace: [OptimaJet.Workflow.Core.Logging](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Logging/) ```csharp public interface IProcessLogProvider ``` ## Type Hierarchy - IProcessLogProvider Current type - Implementing types - [MemoryProcessLogger](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Logging/MemoryProcessLogger/) ## Methods `void Write(ProcessLogEntry entry)` Writes `entry` to the provider. ### Parameters | Name | Type | Description | | --- | --- | --- | | `entry` | `ProcessLogEntry` | The [ProcessLogEntry](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Logging/ProcessLogEntry/) to write. | `Task> ReadAllAsync(Guid processId)` Retrieves all [ProcessLogEntry](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Logging/ProcessLogEntry/) instances for the process identified by `processId`. ### Parameters | Name | Type | Description | | --- | --- | --- | | `processId` | `Guid` | The [ProcessInstance.ProcessId](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ProcessInstance/) value of the process whose [ProcessLogEntry](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Logging/ProcessLogEntry/) instances to retrieve. | ### Returns | Type | Description | | --- | --- | | `Task` | The asynchronous operation that yields all [ProcessLogEntry](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Logging/ProcessLogEntry/) instances associated with the process. | `Task> ReadLastAsync(Guid processId, DateTime time)` Retrieves [ProcessLogEntry](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Logging/ProcessLogEntry/) instances created after `time` for the process identified by `processId`. ### Parameters | Name | Type | Description | | --- | --- | --- | | `processId` | `Guid` | The [ProcessInstance.ProcessId](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ProcessInstance/) value of the process whose [ProcessLogEntry](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Logging/ProcessLogEntry/) instances to retrieve. | | `time` | `DateTime` | The exclusive lower bound for [ProcessLogEntry.CreatedOn](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Logging/ProcessLogEntry/). | ### Returns | Type | Description | | --- | --- | | `Task` | The asynchronous operation that yields the matching [ProcessLogEntry](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Logging/ProcessLogEntry/) instances. | `Task> ReadLastAsync(Guid processId, int count)` Retrieves up to `count` of the most recent [ProcessLogEntry](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Logging/ProcessLogEntry/) instances for the process identified by `processId`. ### Parameters | Name | Type | Description | | --- | --- | --- | | `processId` | `Guid` | The [ProcessInstance.ProcessId](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ProcessInstance/) value of the process whose [ProcessLogEntry](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Logging/ProcessLogEntry/) instances to retrieve. | | `count` | `Int32` | The maximum number of [ProcessLogEntry](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Logging/ProcessLogEntry/) instances to retrieve. | ### Returns | Type | Description | | --- | --- | | `Task` | The asynchronous operation that yields up to `count` of the most recent [ProcessLogEntry](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Logging/ProcessLogEntry/) instances, ordered from newest to oldest. | `Task> ReadEarlyAsync(Guid processId, DateTime time, int count)` Retrieves up to `count` [ProcessLogEntry](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Logging/ProcessLogEntry/) instances created before `time` for the process identified by `processId`. ### Parameters | Name | Type | Description | | --- | --- | --- | | `processId` | `Guid` | The [ProcessInstance.ProcessId](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ProcessInstance/) value of the process whose [ProcessLogEntry](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Logging/ProcessLogEntry/) instances to retrieve. | | `time` | `DateTime` | The exclusive upper bound for [ProcessLogEntry.CreatedOn](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Logging/ProcessLogEntry/). | | `count` | `Int32` | The maximum number of [ProcessLogEntry](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Logging/ProcessLogEntry/) instances to retrieve. | ### Returns | Type | Description | | --- | --- | | `Task` | The asynchronous operation that yields up to `count` of the matching [ProcessLogEntry](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Logging/ProcessLogEntry/) instances, ordered from newest to oldest. | [Previous ILogger](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Logging/ILogger/) [Next MemoryProcessLogger](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Logging/MemoryProcessLogger/)