OldBlueWater/BlueWater/Assets/Doozy/Runtime/Common/Debugger.cs

87 lines
2.8 KiB
C#
Raw Normal View History

// Copyright (c) 2015 - 2023 Doozy Entertainment. All Rights Reserved.
// This code can only be used under the standard Unity Asset Store End User License Agreement
// A Copy of the EULA APPENDIX 1 is available at http://unity3d.com/company/legal/as_terms
using System;
using Doozy.Runtime.Common.Utils;
// ReSharper disable MemberCanBePrivate.Global
// ReSharper disable UnusedMember.Local
namespace Doozy.Runtime.Common
{
/// <summary> Customized debug logger class containing methods to ease debugging </summary>
public static class Debugger
{
private static ILogger loggingSolution => new UnityDebug();
private static ILogger s_logger;
private static ILogger logger => s_logger ??= loggingSolution;
private const string ERROR_COLOR_CODE = "#D9534F";
private const string INFO_COLOR_CODE = "#1C7CD5";
private const string OK_COLOR_CODE = "#5CB85C";
private const string WARNING_COLOR_CODE = "#EE9800";
public enum LogType
{
Assert,
Error,
Warning,
Log,
Exception,
}
private static string DoozyPrefix(LogType logType)
{
string colorCode = "#121212";
switch (logType)
{
case LogType.Log:
colorCode = INFO_COLOR_CODE;
break;
case LogType.Warning:
colorCode = WARNING_COLOR_CODE;
break;
case LogType.Error:
colorCode = ERROR_COLOR_CODE;
break;
case LogType.Exception:
colorCode = ERROR_COLOR_CODE;
break;
case LogType.Assert:
colorCode = OK_COLOR_CODE;
break;
default: throw new ArgumentOutOfRangeException(nameof(logType), logType, null);
}
return $"<color={colorCode}><b>DOOZY </b></color>";
}
/// <summary> Log a message to the console </summary>
/// <param name="message"> String or object to be converted to string representation for display </param>
/// <param name="context"> Object to which the message applies </param>
public static void Log(object message, UnityEngine.Object context = null)
{
message = DoozyPrefix(LogType.Log) + message;
logger.Log(message, context);
}
/// <summary> Log a warning message to the console </summary>
/// <param name="message"> String or object to be converted to string representation for display </param>
/// <param name="context"> Object to which the message applies </param>
public static void LogWarning(object message, UnityEngine.Object context = null)
{
message = DoozyPrefix(LogType.Warning) + message;
logger.LogWarning(message, context);
}
/// <summary> Log an error message to the console </summary>
/// <param name="message"> String or object to be converted to string representation for display </param>
/// <param name="context"> Object to which the message applies </param>
public static void LogError(object message, UnityEngine.Object context = null)
{
message = DoozyPrefix(LogType.Error) + message;
logger.LogError(message, context);
}
}
}