namespace Ubisoft.Hotel.Logger { internal class HtLogger_ImpUnity : HtLogger_Imp { internal override void Init(PlayerLoggerProperty property) { } internal override void Log(HtLogger.Channel channel, object message, HtLogger.ELogLevel logLevel, UnityEngine.Object context = null) { switch (logLevel) { case HtLogger.ELogLevel.Trace: case HtLogger.ELogLevel.Debug: case HtLogger.ELogLevel.Information: { if (context == null) { UnityEngine.Debug.Log(GetMessage(channel, message, true)); } else { UnityEngine.Debug.Log(GetMessage(channel, message, true), context); } break; } case HtLogger.ELogLevel.Warning: { if (context == null) { UnityEngine.Debug.LogWarning(GetMessage(channel, message, true)); } else { UnityEngine.Debug.LogWarning(GetMessage(channel, message, true), context); } break; } case HtLogger.ELogLevel.Error: case HtLogger.ELogLevel.Critical: { if (context == null) { UnityEngine.Debug.LogError(GetMessage(channel, message, true)); } else { UnityEngine.Debug.LogError(GetMessage(channel, message, true), context); } break; } } } internal override void Assert(HtLogger.Channel channel, bool condition, object message, UnityEngine.Object context = null) { if (message == null) { UnityEngine.Debug.Assert(condition); } else { UnityEngine.Debug.Assert(condition, GetMessage(channel, message, false), context); } } internal override void LogAssertion(HtLogger.Channel channel, object message, UnityEngine.Object context) { UnityEngine.Debug.LogAssertion(GetMessage(channel, message, false), context); } internal override void LogException(HtLogger.Channel channel, System.Exception exception, UnityEngine.Object context) { UnityEngine.Debug.LogException(exception, context); } private object GetMessage(HtLogger.Channel channel, object message, bool addColor) { if (channel.IsTagEnabled) { message = "[" + channel.Name + "] " + message; } return !addColor || string.IsNullOrEmpty(channel.Color) ? message : $"{message}"; } } }