using System; using System.Collections; using System.Collections.Generic; using Microsoft.Extensions.Logging; using UnityEngine; using ILogger = Microsoft.Extensions.Logging.ILogger; namespace BITKit { public sealed class UnityLogger:ILogger { [HideInCallstack] public void Log(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func formatter) { switch (logLevel) { case LogLevel.Critical: case LogLevel.Error: if (exception is not null) { Debug.LogException(exception); } else { Debug.LogError($"{typeof(T).CSharpName()}:{state.ToString()}"); } break; default: Debug.Log($"{typeof(T).CSharpName()}:{state.ToString()}"); break; } } public bool IsEnabled(LogLevel logLevel) { return true; } public IDisposable BeginScope(TState state) where TState : notnull { return null; } } }