mirror of
https://github.com/microsoft/agent-framework.git
synced 2026-06-16 21:04:09 +08:00
2c75f13337
* Add Streaming API * Removing InstructionsRole * Updating thread notification strategy * Fix net472 failing * Small fixes * Adding Samples for OpenAI * WIP samples * default runsettings for unit tests * Adding first samples with OpenAIModelChatClientAgents * Removing OpenAI dependency on the sample utility * Release -> Debug update for GettingStarted project * Fix GettingStarted.csproj failing to build in Release * Update dotnet/src/Shared/Samples/BaseSample.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Address PR feedback * Fix Step 1 samples * Simplify code * Address PR feedback --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
43 lines
1.3 KiB
C#
43 lines
1.3 KiB
C#
// Copyright (c) Microsoft. All rights reserved.
|
|
|
|
using Microsoft.Extensions.Logging;
|
|
|
|
namespace Microsoft.Shared.SampleUtilities;
|
|
|
|
/// <summary>
|
|
/// A logger that writes to the Xunit test output
|
|
/// </summary>
|
|
internal sealed class XunitLogger(ITestOutputHelper output) : ILoggerFactory, ILogger, IDisposable
|
|
{
|
|
private object? _scopeState;
|
|
|
|
/// <inheritdoc/>
|
|
public void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Exception? exception, Func<TState, Exception?, string> formatter)
|
|
{
|
|
var localState = state?.ToString();
|
|
var line = this._scopeState is not null ? $"{this._scopeState} {localState}" : localState;
|
|
output.WriteLine(line);
|
|
}
|
|
|
|
/// <inheritdoc/>
|
|
public bool IsEnabled(LogLevel logLevel) => true;
|
|
|
|
/// <inheritdoc/>
|
|
public IDisposable BeginScope<TState>(TState state) where TState : notnull
|
|
{
|
|
this._scopeState = state;
|
|
return this;
|
|
}
|
|
|
|
/// <inheritdoc/>
|
|
public void Dispose()
|
|
{
|
|
// This class is marked as disposable to support the BeginScope method.
|
|
// However, there is no need to dispose anything.
|
|
}
|
|
|
|
public ILogger CreateLogger(string categoryName) => this;
|
|
|
|
public void AddProvider(ILoggerProvider provider) => throw new NotSupportedException();
|
|
}
|