db620d33df
dotnet-build-and-test / dotnet-test-functions (push) Has been cancelled
dotnet-build-and-test / paths-filter (push) Has been cancelled
dotnet-build-and-test / dotnet-build (Debug, windows-latest, net9.0) (push) Has been cancelled
dotnet-build-and-test / dotnet-build (Release, ubuntu-latest, net10.0) (push) Has been cancelled
dotnet-build-and-test / dotnet-build (Release, ubuntu-latest, net8.0) (push) Has been cancelled
dotnet-build-and-test / dotnet-build (Release, windows-latest, net472) (push) Has been cancelled
dotnet-build-and-test / dotnet-test (Release, integration, true, ubuntu-latest, net10.0) (push) Has been cancelled
dotnet-build-and-test / dotnet-test (Release, integration, true, windows-latest, net472) (push) Has been cancelled
dotnet-build-and-test / dotnet-foundry-hosted-it (push) Has been cancelled
dotnet-build-and-test / dotnet-build-and-test-check (push) Has been cancelled
dotnet-build-and-test / Integration Test Report (push) Has been cancelled
CodeQL / Analyze (csharp) (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
49 lines
1.4 KiB
C#
49 lines
1.4 KiB
C#
// Copyright (c) Microsoft. All rights reserved.
|
|
|
|
using Microsoft.Extensions.Logging;
|
|
|
|
namespace Microsoft.Agents.AI.DurableTask.IntegrationTests.Logging;
|
|
|
|
internal sealed class LogEntry(
|
|
string category,
|
|
LogLevel level,
|
|
EventId eventId,
|
|
Exception? exception,
|
|
string message,
|
|
object? state,
|
|
IReadOnlyList<KeyValuePair<string, object?>> contextProperties)
|
|
{
|
|
public string Category { get; } = category;
|
|
|
|
public DateTime Timestamp { get; } = DateTime.Now;
|
|
|
|
public EventId EventId { get; } = eventId;
|
|
|
|
public LogLevel LogLevel { get; } = level;
|
|
|
|
public Exception? Exception { get; } = exception;
|
|
|
|
public string Message { get; } = message;
|
|
|
|
public object? State { get; } = state;
|
|
|
|
public IReadOnlyList<KeyValuePair<string, object?>> ContextProperties { get; } = contextProperties;
|
|
|
|
public override string ToString()
|
|
{
|
|
string properties = this.ContextProperties.Count > 0
|
|
? $"[{string.Join(", ", this.ContextProperties.Select(kvp => $"{kvp.Key}={kvp.Value}"))}] "
|
|
: string.Empty;
|
|
|
|
string eventName = this.EventId.Name ?? string.Empty;
|
|
string output = $"{this.Timestamp:o} [{this.Category}] {eventName} {properties}{this.Message}";
|
|
|
|
if (this.Exception is not null)
|
|
{
|
|
output += Environment.NewLine + this.Exception;
|
|
}
|
|
|
|
return output;
|
|
}
|
|
}
|