OldBlueWater/BlueWater/Assets/Doozy/Runtime/Common/Debugger.cs
2023-08-02 15:08:03 +09:00

87 lines
2.8 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// 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);
}
}
}