using System.Collections.Generic;
namespace Funique
{
///
/// Funique use logger system
/// Use preprocessor LogLevel[X] to change the log level
/// ------------------------------------------------
/// Funique 使用的紀錄系統
/// 使用前處理器 LogLevel[X] 來改變紀錄等級
///
///
/// #define LogLevel1
/// #define LogLevel2
/// #define LogLevel3
///
public static class FuniqueLogger
{
static List loggers = new List();
internal static int Level
{
get
{
#if LogLevel1
return 1;
#elif LogLevel2
return 2;
#elif LogLevel3
return 3;
#elif LogLevel4
return 4;
#elif LogLevel5
return 5;
#else
return 3;
#endif
}
}
public static void Init(LoggerApply logger = LoggerApply.Unity | LoggerApply.File)
{
if (logger.HasFlag(LoggerApply.File)) loggers.Add(new FileLogger());
if (logger.HasFlag(LoggerApply.Unity)) loggers.Add(new UnityLogger());
}
public static void AddNewLogger(ILogger logger)
{
loggers.Add(logger);
}
public static void CleanLogger()
{
loggers.Clear();
}
public static void Log(object message, string tag, int level = 3)
{
foreach (var logger in loggers) logger.Log(message, tag, level);
}
public static void Log(object message, int level = 3)
{
foreach (var logger in loggers) logger.Log(message, level);
}
public static void WarningLog(object message, string tag, int level = 3)
{
foreach (var logger in loggers) logger.Warning(message, tag, level);
}
public static void WarningLog(object message, int level = 3)
{
foreach (var logger in loggers) logger.Warning(message, level);
}
public static void ErrorLog(object message, string tag, int level = 3)
{
foreach (var logger in loggers) logger.Error(message, tag, level);
}
public static void ErrorLog(object message, int level = 3)
{
foreach (var logger in loggers) logger.Error(message, level);
}
}
}