Skip to content

Instantly share code, notes, and snippets.

@joarhal
Created April 22, 2015 08:44
Show Gist options
  • Save joarhal/ff0655699f77676d9055 to your computer and use it in GitHub Desktop.
Save joarhal/ff0655699f77676d9055 to your computer and use it in GitHub Desktop.
Simple unity3d log system wrapper.
namespace Assets.Scripts.Infrastructure
{
public class Log
{
private static LogLevel _level;
private static Log _log;
public static event DebugMessageAction OnDebugMessageRecieve;
public delegate void DebugMessageAction(string textMessage);
private Log()
{
}
public static void SetLevel(LogLevel logLevel)
{
_level = logLevel;
}
public static Log Get()
{
return _log ?? (_log = new Log());
}
/// <summary>
/// Spam level log
/// </summary>
/// <param name="message"></param>
public static void Spam(string message)
{
Get().Message(message, LogLevel.SPAM);
}
/// <summary>
/// Care message log
/// </summary>
/// <param name="message"></param>
public static void Care(string message)
{
Get().Message(message, LogLevel.CARE);
}
/// <summary>
/// Warning level log
/// </summary>
/// <param name="message"></param>
public static void Warning(string message)
{
Get().Message(message, LogLevel.WARNING);
}
/// <summary>
/// Debug level log
/// This level for ui debug console
/// </summary>
/// <param name="message"></param>
public static void Debug(string message)
{
Get().Message(message, LogLevel.DEBUG);
}
/// <summary>
/// Log message on log instance
/// </summary>
/// <param name="message"></param>
/// <param name="level"></param>
public void Message(string message, LogLevel level)
{
if (level == LogLevel.DEBUG)
if (OnDebugMessageRecieve != null)
OnDebugMessageRecieve(message);
if (_level == LogLevel.WARNING)
if (level == LogLevel.WARNING)
UnityEngine.Debug.LogError(message);
if (_level == LogLevel.CARE)
{
if (level == LogLevel.CARE)
UnityEngine.Debug.LogWarning(message);
if (level == LogLevel.WARNING)
UnityEngine.Debug.LogError(message);
}
if (_level == LogLevel.SPAM)
{
if (level == LogLevel.CARE)
UnityEngine.Debug.LogWarning(message);
if (level == LogLevel.WARNING)
UnityEngine.Debug.LogError(message);
if (level == LogLevel.SPAM)
UnityEngine.Debug.Log(message);
}
}
public enum LogLevel
{
DEBUG = -1,
NONE = 0,
WARNING = 2,
CARE = 3,
SPAM = 4
}
}
}
@joarhal
Copy link
Author

joarhal commented Apr 22, 2015

Using:

Log.SetLevel(Log.LogLevel.SPAM);
Log.Care("Care message");
Log.Debug("Debug message for ui callback");
Log.Spam("Spam message");
Log.Warning("Warning message");

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment