using CommonLang.Log;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CommonUI_Unity3D.Impl
{
    public  class UnityLoggerFactory : LoggerFactory
    {
        protected override Logger CreateLogger(string name)
        {
            return new UnityLogger();
        }
    }
    public class UnityLogger : Logger
    {
        public UnityLogger()
        {
            this.SetLevel(0xFFFFFFFF);
        }
        
        public override void LogLevel(uint level, string msg, Exception err)
        {
            if ((level & base.Level) != 0)
            {
                if ((level & LoggerLevel.ERROR) != 0)
                {
                    UnityEngine.Debug.LogError(msg);
                }
                //else if ((level & LoggerLevel.FATAL) != 0)
                //{
                //    UnityEngine.Debug.LogError(msg);
                //}
                else if ((level & LoggerLevel.WARNNING) != 0)
                {
                    UnityEngine.Debug.LogWarning(msg);
                }
                else
                {
                    UnityEngine.Debug.Log(msg);
                }
                if (err != null)
                {
                    UnityEngine.Debug.LogException(err);
                }
            }
        }
        

    }
}