/
githubmirror
/
aspnetcore
Обзор
Документация
Войти
/
githubmirror
/
aspnetcore
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/Components/test/testassets/BasicTestApp/PrependMessageLoggerProvider.cs
62 строки
2 KB
Pavel Savara
Revert "[blazor][wasm] Convert more interop to JSImport (#65895)" (#66069)
30 мар 2026, 15:36
Не верифицирован
30 мар 2026, 15:36
ee564b6
Код
Авторство
О чём код?
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using Microsoft.AspNetCore.Components.WebAssembly.Services; using Microsoft.JSInterop; namespace BasicTestApp; [ProviderAlias("PrependMessage")] internal class PrependMessageLoggerProvider : ILoggerProvider { ILogger _logger; readonly string _message; readonly ILogger _defaultLogger; private bool _disposed = false; public PrependMessageLoggerProvider(string message, IJSRuntime runtime) { _message = message; _defaultLogger = new WebAssemblyConsoleLogger<object>(runtime); } public ILogger CreateLogger(string categoryName) { if (_logger == null) { _logger = new PrependMessageLogger(_message, _defaultLogger); } return _logger; } public void Dispose() { if (!_disposed) { _logger = null; } _disposed = true; } private class PrependMessageLogger : ILogger { private readonly string _message; private readonly ILogger _underlyingLogger; public PrependMessageLogger(string message, ILogger underlyingLogger) { _message = message; _underlyingLogger = underlyingLogger; } public IDisposable BeginScope<TState>(TState state) => _underlyingLogger.BeginScope(state); public bool IsEnabled(LogLevel logLevel) => _underlyingLogger.IsEnabled(logLevel); public void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func<TState, Exception, string> formatter) => _underlyingLogger.Log(logLevel, eventId, state, exception, (state, exception) => $"[{_message}] {formatter(state, exception)}"); } }