using UnityEngine;
namespace LogPrint
{
public class LogSystem
{
/// <summary>
/// 暂时只有log,warning,error三种
/// </summary>
public enum LogType
{
Log,
Warnng,
Error,
}
/// <summary>
/// 是否打印日志,false为不打印,true 打印
/// </summary>
public static bool isShowLog = false;
/// <summary>
/// 输出日志级别,默认10级,低于这个级别的日志不显示 Ps:为了过滤普通的日志信息,修改到10以上就隐藏默认日志
/// </summary>
public static int miniLevel = 10;
//默认的日志级别
const int defaultLevel = 10;
/// <summary>
/// 显示日志
/// </summary>
/// <param name="log"></param>
/// <param name="logcolor"></param>
/// <param name="logLevel">日志级别,将级别修改到10以上,然后修改最低显示日志,就可以单独显示个别日志</param>
public static void Log(string log, LogColor logcolor = LogColor.None, int logLevel = defaultLevel)
{
PrintLog(log, LogType.Log, logcolor, logLevel);
}
/// <summary>
/// 显示日志
/// </summary>
/// <param name="log">内容</param>
/// <param name="logcolor">颜色</param>
public static void Log(int log, LogColor logcolor = LogColor.None, int logLevel = defaultLevel)
{
PrintLog(log.ToString(), LogType.Log, logcolor, logLevel);
}
/// <summary>
/// 显示警告
/// </summary>
/// <param name="log"></param>
public static void LogWarning(string log)
{
PrintLog(log, LogType.Warnng);
}
/// <summary>
/// 显示错误
/// </summary>
/// <param name="log"></param>
public static void LogError(string log)
{
PrintLog(log, LogType.Error);
}
private static void PrintLog(string log, LogType type, LogColor logcolor = LogColor.None, int logLevel = defaultLevel)
{
//如果想要显示个别日志,修改一下最低的日志级别即可
if (!isShowLog || logLevel < miniLevel)
{
return;
}
string strmsg = "";
switch (logcolor)
{
case LogColor.None:
strmsg = log;
break;
case LogColor.red:
strmsg = string.Format("<color=red>{0}</color>", log);
break;
case LogColor.yellow:
strmsg = string.Format("<color=yellow>{0}</color>", log);
break;
case LogColor.black:
strmsg = string.Format("<color=black>{0}</color>", log);
break;
case LogColor.white:
strmsg = string.Format("<color=white>{0}</color>", log);
break;
case LogColor.blue:
strmsg = string.Format("<color=blue>{0}</color>", log);
break;
case LogColor.green:
strmsg = string.Format("<color=green>{0}</color>", log);
break;
case LogColor.grey:
strmsg = string.Format("<color=grey>{0}</color>", log);
break;
default:
break;
}
switch (type)
{
case LogType.Log:
Debug.Log(strmsg);
break;
case LogType.Warnng:
Debug.LogWarning(log);
break;
case LogType.Error:
Debug.LogError(log);
break;
}
}
}
/// <summary>
/// 日志颜色,暂时只有默认的几种颜色,不支持可配置
/// </summary>
public enum LogColor
{
None,//不设置
red,//红色
yellow,//黄色
black,//黑色
white,//白色
blue,//蓝色
green,//绿色
grey,//灰色
}
}
//-------------最好将其封装成dll引入工程中,这样编辑器下双击就可跳转------------------