44 lines
1.3 KiB
C#
44 lines
1.3 KiB
C#
using System;
|
|
using Reflex.Configuration;
|
|
using UnityEngine;
|
|
|
|
namespace Reflex.Logging
|
|
{
|
|
internal static class ReflexLogger
|
|
{
|
|
private static LogLevel _logLevel;
|
|
|
|
static ReflexLogger()
|
|
{
|
|
var reflexSettings = ReflexSettings.Instance;
|
|
_logLevel = reflexSettings.LogLevel;
|
|
Log($"Reflex LogLevel set to {_logLevel}", LogLevel.Info);
|
|
}
|
|
|
|
public static void UpdateLogLevel(LogLevel logLevel)
|
|
{
|
|
if (logLevel != _logLevel)
|
|
{
|
|
_logLevel = logLevel;
|
|
Log($"Reflex LogLevel set to {_logLevel}", LogLevel.Info);
|
|
}
|
|
}
|
|
|
|
public static void Log(object message, LogLevel logLevel, UnityEngine.Object context = null)
|
|
{
|
|
if (logLevel < _logLevel)
|
|
{
|
|
return;
|
|
}
|
|
|
|
switch (logLevel)
|
|
{
|
|
case LogLevel.Development: Debug.Log(message, context); break;
|
|
case LogLevel.Info: Debug.Log(message, context); break;
|
|
case LogLevel.Warning: Debug.LogWarning(message, context); break;
|
|
case LogLevel.Error: Debug.LogError(message, context); break;
|
|
default: throw new ArgumentOutOfRangeException(nameof(logLevel), logLevel, null);
|
|
}
|
|
}
|
|
}
|
|
} |