using Logs;
using System.Collections.Generic;
using WCS.Entity;
namespace WCS.Service.Log
{
    /// 
    /// 信息日志
    /// 
    public class InfoLog : ILogType
    {
        /// 
        /// 日志名称
        /// 
        public string LogName => "Info";
        /// 
        /// 信息日志
        /// 
        public static ILogType Log { get; private set; }
        /// 
        /// 日志子项集合
        /// 
        public Dictionary SubLogNames { get; set; }
        static InfoLog()
        {
            if (Log == null)
                Log = new InfoLog();
        }
        public InfoLog()
        {
            SubLogNames = new Dictionary
            {
                ["INFO"] = "Info"
            };
            LogHelper.Init(this);
        }
        /// 
        /// 错误检查
        /// 
        /// 
        public static void INFO_ERRORCHECK(string msg)
        {
            Log.Info(msg, "INFO_ERRORCHECK");
        }
        /// 
        /// 系统执行信息
        /// 
        /// 
        public static void INFO_INIT(string msg)
        {
            Log.Info(msg, "INFO_INIT");
        }
        /// 
        /// 系统执行信息
        /// 
        /// 
        public static void INFO_SRMALARM(string msg)
        {
            Log.Info(msg, "INFO_SRMALARM");
        }
        /// 
        /// 系统执行信息  基本检查条件不满足时记录
        /// 
        /// 
        public static void INFO_INFO(string msg)
        {
            Log.Info(msg, "INFO_INFO");
        }
        /// 
        /// 系统执行错误
        /// 
        /// 
        public static void INFO_ERROR(string msg)
        {
            Log.Error(msg, "INFO_ERROR");
            //Console.WriteLine(msg);
        }
        /// 
        /// 系统执行警告 所有一直错误都归类为警告
        /// 
        /// 
        public static void INFO_WARN(string msg)
        {
            Log.Warn(msg, "INFO_WARN");
            //Console.WriteLine(msg);
        }
        /// 
        /// 系统执行警告 所有一直错误都归类为警告,存入数据库
        /// 
        /// 错误内容
        /// 设备
        /// 错误类型
        public static void INFO_WarnDb(string msg, string code, WCS_EXCEPTIONTYPE type)
        {
            Log.Warn(msg, "INFO_WARN");
            WCS.Service.Helpers.LogHelper.AddWCS_EXCEPTION(msg, code, type.ToString());
            WMS.TaskException(code, msg);
        }
        /// 
        /// 堆垛机写入记录
        /// 
        /// 
        public static void INFO_SRMINFO(string msg)
        {
            Log.Info(msg, "INFO_SRMINFO");
        }
        /// 
        /// 任务状态更新记录
        /// 
        /// 
        public static void INFO_SYTASKSTATUS(string msg)
        {
            Log.Info(msg, "INFO_SYTASKSTATUS");
        }
        /// 
        /// WMS请求记录
        /// 
        /// 
        public static void INFO_WMSREQUEST(string msg)
        {
            Log.Info(msg, "INFO_WMSREQUEST");
        }
        /// 
        /// PLC读取记录
        /// 
        /// 
        public static void INFO_PLCREADLOG(string msg)
        {
            Log.Info(msg, "INFO_PLCREADLOG");
        }
        /// 
        /// 计时器
        /// 
        /// 
        public static void INFO_TIMING(string msg)
        {
            Log.Info(msg, "INFO_TIMING");
        }
        /// 
        /// WCS异常上抛记录
        /// 
        /// 
        public static void INFO_I_WCS_GetExcTask(string msg)
        {
            Log.Info(msg, "INFO_UPEX");
        }
        /// 
        /// 任务创建记录
        /// 
        /// 
        public static void INFO_CREATETASKIN(string msg)
        {
            Log.Info(msg, "INFO_CREATETASKIN");
        }
        /// 
        /// RGV的写入记录
        /// 
        /// 
        public static void INFO_RGVINFO(string msg)
        {
            Log.Info(msg, "INFO_RGVINFO");
        }
        /// 
        /// AGV相关日志
        /// 
        /// 
        public static void INFO_AGV(string msg)
        {
            Log.Info(msg, "INFO_AGV");
        }
    }
}