Net.Like.Xue.Tokyo/Assets/BITKit/Unity/Scripts/LoggerForUnity.cs

46 lines
1.3 KiB
C#
Raw Normal View History

2024-11-03 16:42:23 +08:00
using System;
using System.Collections;
using System.Collections.Generic;
using Microsoft.Extensions.Logging;
using UnityEngine;
using ILogger = Microsoft.Extensions.Logging.ILogger;
namespace BITKit
{
2024-12-28 23:19:55 +08:00
public sealed class UnityLogger<T>:ILogger<T>
2024-11-03 16:42:23 +08:00
{
2025-02-24 23:03:39 +08:00
[HideInCallstack]
2024-12-28 23:19:55 +08:00
public void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func<TState, Exception, string> formatter)
2024-11-03 16:42:23 +08:00
{
2024-12-28 23:19:55 +08:00
switch (logLevel)
{
case LogLevel.Critical:
case LogLevel.Error:
if (exception is not null)
{
Debug.LogException(exception);
}
else
{
2025-02-26 15:34:59 +08:00
Debug.LogError($"{typeof(T).CSharpName()}:{state.ToString()}");
2024-12-28 23:19:55 +08:00
}
break;
default:
2025-02-26 15:34:59 +08:00
Debug.Log($"<b>{typeof(T).CSharpName()}</b>:{state.ToString()}");
2024-12-28 23:19:55 +08:00
break;
}
}
public bool IsEnabled(LogLevel logLevel)
{
return true;
2024-11-03 16:42:23 +08:00
}
2024-12-28 23:19:55 +08:00
public IDisposable BeginScope<TState>(TState state) where TState : notnull
2024-11-03 16:42:23 +08:00
{
2024-12-28 23:19:55 +08:00
return null;
2024-11-03 16:42:23 +08:00
}
}
}