예제 #1
0
        public static void WriteLog(LOGTYPE logType, string message)
        {
            string file = string.Empty;

            switch (logType)
            {
            default:
            case LOGTYPE.INFO:
            case LOGTYPE.SUCCESS:
                file = PathInfo.CombinePath(PathInfo.CurrentLog, DateTime.Now.ToString("yyyyMMddHH")) + "-access.log";
                break;

            case LOGTYPE.ERROR:
                file = PathInfo.CombinePath(PathInfo.CurrentLog, DateTime.Now.ToString("yyyyMMddHH")) + "-error.log";
                break;
            }

            if (!string.IsNullOrEmpty(file))
            {
                using (StreamWriter writer = new StreamWriter(file, true))
                {
                    writer.WriteLine(string.Format("{0} {1}", DateTime.Now.ToString("u"), message));
                }
            }
        }
예제 #2
0
        /// <summary>
        /// @func:将日志根据类型记录入日志池
        /// @author:wolan
        /// @brief:内部根据enmLogType进行日志内容区分
        /// </summary>
        /// <param name="logType"></param>
        /// <param name="logContent"></param>
        public static void Write(LOGTYPE logType, params string[] content)
        {
            try
            {
                if ((LogEngine._logType & (int)logType) > 0)
                {
                    StringBuilder logInfo = new StringBuilder(LOG_EACH_MAXLEN + 50);

                    logInfo.Append(DateTime.Now.ToString("dd HH:mm:ss "));
                    switch (logType)
                    {
                    case LOGTYPE.ERROR:
                        logInfo.Append("● ");
                        break;

                    case LOGTYPE.DEBUG:
                        logInfo.Append("○ ");
                        break;
                    }

                    foreach (string each in content)
                    {
                        logInfo.Append(each);
                    }

                    LogEngine._s_logPool.Enqueue(logInfo.ToString());
                    logInfo.Remove(0, logInfo.Length);
                }
            }
            catch { }
        }
        public static void LogError(LOGTYPE type, string message, Exception innerException, string projectId)
        {
            try
            {
                switch (type)
                {
                case LOGTYPE.ERROR:
                    Log.Error(innerException, $"ProjectId:{projectId}, Message:{message}");
                    break;

                case LOGTYPE.INFORMATION:
                    Log.Information(innerException, $"ProjectId:{projectId}, Message:{message}");
                    break;

                case LOGTYPE.USERINFO:
                    Log.Information($"[UserInfo] ProjectId:{projectId}, Message:(\"{message}\")");
                    break;

                case LOGTYPE.WARNING:
                    Log.Warning(innerException, $"ProjectId:{projectId}, Message:{message}");
                    break;

                case LOGTYPE.DEBUG:
                    Log.Debug(innerException, $"ProjectId:{projectId}, Message:{message}");
                    break;

                default:
                    break;
                }
            }
            catch (Exception ex)
            {
            }
        }
예제 #4
0
        public static BaseResultInfo FileToNewDB(string fileName, LOGTYPE logType, bool isUnified)
        {
            SiteLogger.ILogger logger = SiteLogger.LoggingFactory.GetLogger;
            List <string>      file   = LogReader.LogFileReader.ReadFile(fileName);

            if (isUnified)
            {
                file = LogReader.LogFileReader.UnifiedLogLines(file);
            }
            List <LogItem>    items      = LogReader.LogFileReader.LinesToLogs(file.ToArray(), logType);
            LogItemRepository repository = new LogItemRepository();
            BaseResultInfo    res        = repository.GetLastLogItem(logType.ToString(), null);
            LogItem           last       = res.GetResult <LogItem>();
            int     itemsSentToDB        = items.Count;
            LogItem lastFound            = last == null? null: items.FirstOrDefault(l => l.InsertDate == last.InsertDate);

            if (lastFound == null)
            {
                res = repository.InsertLogItem(items);
            }
            else
            {
                List <LogItem> itemsToSend = items.FindAll(l => l.Index > lastFound.Index);
                itemsSentToDB = itemsToSend.Count;
                res           = repository.InsertLogItem(itemsToSend);
            }
            logger.Debug(string.Format("FILE NAME = {0} , TOTAL ITEMS  = {1} , ITEM TRY INSERT = {2}, TOTAL SUCCESS = {3}, TOTAL FAILD = {4}", fileName, items.Count, itemsSentToDB, res.ReturnValue, itemsSentToDB - res.ReturnValue));
            return(res);
        }
예제 #5
0
        /// <summary>
        /// LOG를 기록하기 위한 함수
        /// </summary>
        /// <param name="_LOGTYPE">LOGTYPE[ENUM]</param>
        /// <param name="_DATA">LOG VALUE</param>
        /// <param name="_ONLY_UI">Log Display 처리 유무</param>
        /// <param name="_FILE_WRITE">File Write 유무</param>
        static public void SetLOG(LOGTYPE _LOGTYPE, string _DATA, bool _ONLY_UI = true, bool _FILE_WRITE = true)
        {
            clsLOGMsg clsLOGMsg = new clsLOGMsg
            {
                LogType   = _LOGTYPE.ToString(),
                EventTime = "[" + String.Format("{0:HH:mm:ss.fff}" + "]\t", DateTime.Now).Trim(),
                LOGDATA   = _DATA.Trim()
            };

            try
            {
                if (_FILE_WRITE)
                {
                    //File Write Queue 에 적재
                    lock (Queue_LOG.SyncRoot)
                    {
                        Queue_LOG.Enqueue(clsLOGMsg);    //LOG File Save 용
                    }
                }

                if (_ONLY_UI)
                {
                    if (OnLOG_VIEW != null)
                    {
                        OnLOG_VIEW(_LOGTYPE, _DATA);
                    }
                }

                clsLOGMsg = null;
            }
            catch
            {
            }
        }
예제 #6
0
 /// <summary>
 /// 自定义添加日志
 /// </summary>
 /// <param name="logtype">日志类型:</param>
 /// <param name="logid">日志ID</param>
 /// <param name="logobject">日志对象</param>
 /// <param name="logsubject">日志主题</param>
 /// <param name="logcontent">日志内容</param>
 /// <param name="key01">保留字段1</param>
 /// <param name="key02">保留字段2</param>
 /// <param name="key03">保留字段3</param>
 /// <param name="key04">保留字段4</param>
 /// <param name="key05">保留字段5</param>
 public static void LogAdd(LOGTYPE logtype, String logid, String logobject, String logsubject,
                           String logcontent, String key01 = "",
                           String key02 = "", String key03 = "",
                           String key04 = "", String key05 = "")
 {
     LOG.LogAdd(logtype, logid, logobject, logsubject, logcontent, key01, key02, key03, key04, key05);
 }
예제 #7
0
        public static BaseResultInfo GetLastItem(LOGTYPE logType, string server)
        {
            LogItemRepository repository = new LogItemRepository();
            BaseResultInfo    res        = repository.GetLastLogItem(logType.ToString(), server);

            return(res);
        }
예제 #8
0
 public void WriteBytesLog(string head, byte[] bts, int offset, int count, LOGTYPE logTYPE = LOGTYPE.DEBUG)
 {
     if (Config.ShowNetLog)
     {
         Log.WriteLog4(head + ByteHelper.BytesToHexString(bts, offset, count, Config.HexAddSpace), LOGTYPE.DEBUG);
     }
 }
예제 #9
0
 public void WriteLog(string log, LOGTYPE logTYPE = LOGTYPE.DEBUG)
 {
     if (Config.ShowNetLog)
     {
         Log.WriteLog4(log, logTYPE);
     }
 }
예제 #10
0
        public static void Print(object stdout, LOGTYPE stdtype = LOGTYPE.INFO, string LineTerminator = "")
        {
            if (LineTerminator == "")
            {
                LineTerminator = System.Environment.NewLine;
            }

            string Prepend = "";

            switch (stdtype)
            {
            case LOGTYPE.INFO:
                Prepend = "[INFO] ";
                //log.AppendLine("[INFO]" + stdout.ToString());
                break;

            case LOGTYPE.WARNING:
                Prepend = "[WARNING] ";
                //log.AppendLine("[WARNING]" + stdout.ToString());
                break;

            case LOGTYPE.ERROR:
                Prepend = "[ERROR] ";
                //log.AppendLine("[ERROR]" + stdout.ToString());
                break;
            }
            DebugWindow.AppendLog(Prepend + stdout.ToString() + LineTerminator);
        }
 public void LogManagerLogging(LOGTYPE type, String text)
 {
     Channel.Instance.logProxy.LogMessage(type, text);
     mainWindowViewModel.Logging.Add(new ClientLog()
     {
         Type = type.ToString(), Text = text
     });
 }
예제 #12
0
    public void Log(LOGTYPE Type, string sData)
    {
        if (Type > m_Level)
            return;

        // Do some stuff that always applies
        sData = GetDateTime() + sData;

        System.Diagnostics.Debug.WriteLine(m_sFileName + ": " + sData);

        LogToFile(Type, sData);
    }
예제 #13
0
        public void Write(LOGTYPE type, string value)
        {
            string log = string.Format("[{0:12}] ({1}) {2}",
                                       DateTime.Now.ToString("hh:mm:ss.fff"), type.ToString(), value);

            sw.WriteLine(log);
            if (Properties.Settings.Default.logFormEnabled)
            {
                logList[0].AppendText(string.Format("{0}" + Environment.NewLine, log));
                logList[(int)type].AppendText(string.Format("{0}" + Environment.NewLine, log));
            }
        }
예제 #14
0
    public void Log(LOGTYPE Type, string sData)
    {
        if (Type > m_Level)
        {
            return;
        }

        // Do some stuff that always applies
        sData = GetDateTime() + sData;

        System.Diagnostics.Debug.WriteLine(m_sFileName + ": " + sData);

        LogToFile(Type, sData);
    }
예제 #15
0
        public static BaseResultInfo FileToDB(string fileName, LOGTYPE logType, bool isUnified)
        {
            List <string> file = LogReader.LogFileReader.ReadFile(fileName);

            if (isUnified)
            {
                file = LogReader.LogFileReader.UnifiedLogLines(file);
            }
            List <LogItem>    items      = LogReader.LogFileReader.LinesToLogs(file.ToArray(), logType);
            LogItemRepository repository = new LogItemRepository();
            BaseResultInfo    res        = repository.InsertLogItem(items);

            return(res);
        }
예제 #16
0
        public void LogWrite(LOGTYPE type, string str)
        {
            string FilePath = Environment.CurrentDirectory + @"\Log\Log_" + type.ToString() + "_" + DateTime.Today.ToString("yyyyMMdd") + ".log";
            string DirPath  = Environment.CurrentDirectory + @"\Log";
            string temp;

            if (mSaveLogfile != true)
            {
                temp = string.Format("[{0}] {1}", DateTime.Now, str);

                Console.WriteLine(temp);
                return;
            }
            else
            {
                temp = string.Format("[{0}] {1}", DateTime.Now, str);
            }

            DirectoryInfo di = new DirectoryInfo(DirPath);
            FileInfo      fi = new FileInfo(FilePath);

            try
            {
                if (!di.Exists)
                {
                    Directory.CreateDirectory(DirPath);
                }
                if (!fi.Exists)
                {
                    using (StreamWriter sw = new StreamWriter(FilePath))
                    {
                        temp = string.Format("[{0}] {1}", DateTime.Now, str);
                        sw.WriteLine(temp);
                        sw.Close();
                    }
                }
                else
                {
                    using (StreamWriter sw = File.AppendText(FilePath))
                    {
                        temp = string.Format("[{0}] {1}", DateTime.Now, str);
                        sw.WriteLine(temp);
                        sw.Close();
                    }
                }
            }
            catch (Exception e)
            {
            }
        }
예제 #17
0
        public static List <LogItem> LinesToLogs(string[] lines, LOGTYPE logType)
        {
            List <LogItem> items = new List <LogItem>();

            for (int i = 0; i < lines.Length; i++)
            {
                var     item    = lines[i];
                LogItem logItem = ExtractLogItem(item, i, logType);
                if (logItem != null)
                {
                    items.Add(logItem);
                }
            }
            return(items);
        }
예제 #18
0
    // File version
    private void LogToFile(LOGTYPE Type, string sData)
    {
        switch (Type)
        {
        case LOGTYPE.INFO:
            m_ILog.Info(sData);
            break;

        case LOGTYPE.DEBUG:
            m_ILog.Debug(sData);
            break;

        case LOGTYPE.ERROR:
            m_ILog.Error(sData);
            break;
        }
    }
예제 #19
0
        public static LogItem ExtractLogItem(string line, int index, LOGTYPE logType)
        {
            string[] lineSplited = line.Split('¡');
            LogItem  i           = new LogItem();

            switch (logType)
            {
            case LOGTYPE.Info:
                break;

            case LOGTYPE.Debug:
                break;

            case LOGTYPE.Warn:
                return(ExtractLogItemWarn(lineSplited, index));

            case LOGTYPE.Trace:
                return(ExtractLogItemTrace(lineSplited, index));

            case LOGTYPE.Error:
                return(ExtractLogItemError(lineSplited, index));

            case LOGTYPE.Fatal:
                return(ExtractLogItemFatal(lineSplited, index));

            case LOGTYPE.JSError:
                return(ExtractLogItemJSTrace(lineSplited, index));

            case LOGTYPE.DBTrace:
                return(ExtractLogItemDBTrace(lineSplited, index));

            case LOGTYPE.Test:
                break;

            case LOGTYPE.Report:
                break;

            case LOGTYPE.Cache:
                break;

            default:
                break;
            }
            return(i);
        }
예제 #20
0
파일: Form1.cs 프로젝트: Deku164/T1
        /// <summary>
        /// UI 출력용 LOG Event 처리 함수
        /// </summary>
        /// <param name="TYPE">LOG Type</param>
        /// <param name="DATA">DATA</param>
        private void LOG_EVENT(LOGTYPE TYPE, string DATA)
        {
            string LogMessage = string.Empty;
            string Log_Event  = string.Empty;

            try
            {
                //Log_Event = ("TYPE:" + TYPE.ToString() + ", DATA:" + DATA);

                LogMessage = "[" + String.Format("{0:HH:mm:ss.fff}" + "] ", DateTime.Now) + DATA.ToString();

                _queLog.Enqueue(LogMessage);
            }
            catch (Exception ex)
            {
                clsLOG.SetLOG(LOGTYPE.SYSTEMERROR, ex.ToString());
            }
        }
예제 #21
0
        /// <summary>
        /// 添加日志
        /// </summary>
        /// <param name="logtype">日志类型</param>
        /// <param name="logid">日志ID</param>
        /// <param name="logobject">日志对象</param>
        /// <param name="logsubject">日志主题</param>
        /// <param name="logcontent">日志内容</param>
        /// <param name="key01">保留字段1</param>
        /// <param name="key02">保留字段2</param>
        /// <param name="key03">保留字段3</param>
        /// <param name="key04">保留字段4</param>
        /// <param name="key05">保留字段5</param>
        public void LogAdd(LOGTYPE logtype, String logid, String logobject, String logsubject,
                           String logcontent, String key01 = "",
                           String key02 = "", String key03 = "",
                           String key04 = "", String key05 = "")
        {
            LogData data = new LogData();

            data.LogType    = logtype;
            data.LogID      = logid;
            data.LogObject  = logobject;
            data.LogSubject = logsubject;
            data.LogContent = logcontent;
            data.LogTime    = System.DateTime.Now;
            data.LogKey01   = key01;
            data.LogKey02   = key02;
            data.LogKey03   = key03;
            data.LogKey04   = key04;
            data.LogKey05   = key05;
            _logList_temp.Add(data);
        }
예제 #22
0
        public static bool IsUnified(LOGTYPE logType)
        {
            switch (logType)
            {
            case LOGTYPE.Trace:
            case LOGTYPE.DBTrace:
            case LOGTYPE.Error:
            case LOGTYPE.Fatal:
                return(true);

            case LOGTYPE.Info:
            case LOGTYPE.Debug:
            case LOGTYPE.Warn:
            case LOGTYPE.JSError:
            case LOGTYPE.Test:
            case LOGTYPE.Report:
            case LOGTYPE.Cache:
                return(false);

            default:
                return(true);
            }
        }
예제 #23
0
        public bool LogMessage(LOGTYPE logType, String message)
        {
            try
            {
                switch (logType)
                {
                case LOGTYPE.DEBUG:
                    log.Debug("CLIENT side - " + message);
                    break;

                case LOGTYPE.INFO:
                    log.Info("CLIENT side - " + message);
                    break;

                case LOGTYPE.WARN:
                    log.Warn("CLIENT side - " + message);
                    break;

                case LOGTYPE.ERROR:
                    log.Error("CLIENT side - " + message);
                    break;

                case LOGTYPE.FATAL:
                    log.Fatal("CLIENT side - " + message);
                    break;

                default:
                    break;
                }
                return(true);
            }
            catch
            {
                return(false);
            }
        }
예제 #24
0
        public static void WriteLog(LOGTYPE logType, string message)
        {
            string file = string.Empty;
            switch (logType)
            {
                default:
                case LOGTYPE.INFO:
                case LOGTYPE.SUCCESS:
                    file = PathInfo.CombinePath(PathInfo.CurrentLog, DateTime.Now.ToString("yyyyMMddHH")) + "-access.log";
                    break;

                case LOGTYPE.ERROR:
                    file = PathInfo.CombinePath(PathInfo.CurrentLog, DateTime.Now.ToString("yyyyMMddHH")) + "-error.log";
                    break;
            }

            if (!string.IsNullOrEmpty(file))
            {
                using (StreamWriter writer = new StreamWriter(file, true))
                {
                    writer.WriteLine(string.Format("{0} {1}", DateTime.Now.ToString("u"), message));
                }
            }
        }
예제 #25
0
파일: Log.cs 프로젝트: qq18562737/Robot
 public static void WriteLog(LOGTYPE type, Object message)
 {
     Console.WriteLine(message);
 }
예제 #26
0
 /// <summary>
 /// コンストラクタ
 /// </summary>
 /// <param name="type">ログの種類</param>
 /// <param name="message">ログとして残す文字列</param>
 public Log(LOGTYPE type, string message)
 {
     this.type = type;
     this.message = message;
 }
예제 #27
0
 // Event Log version
 private void LogToStore(LOGTYPE Type, string sData)
 {
     lock (m_LogRS)
     {
         SequenceNumber Last = SequenceNumber.Invalid;
         Last = m_LogRS.Append(CreateData(sData), SequenceNumber.Invalid, SequenceNumber.Invalid, RecordAppendOptions.ForceFlush);
     }
 }
예제 #28
0
    // File version
    private void LogToFile(LOGTYPE Type, string sData)
    {
        byte[] bBuf = ASCIIEncoding.Default.GetBytes(sData);

        lock (m_LogFS)
        {
            m_LogFS.Write(bBuf, 0, bBuf.Length);
            m_LogFS.Write(m_bNewnline, 0, m_bNewnline.Length);
            m_LogFS.Flush();
        }
    }
예제 #29
0
 public void SetLogging(LOGTYPE Level)
 {
     m_Level = Level;
 }
예제 #30
0
 // File version
 private void LogToFile(LOGTYPE Type, string sData)
 {
     switch (Type)
     {
         case LOGTYPE.INFO:
             m_ILog.Info(sData);
             break;
         case LOGTYPE.DEBUG:
             m_ILog.Debug(sData);
             break;
         case LOGTYPE.ERROR:
             m_ILog.Error(sData);
             break;
     }
 }
예제 #31
0
 public void SetLogging(LOGTYPE Level)
 {
     m_Level = Level;
 }
예제 #32
0
 public static void Write(LOGTYPE logType, StringBuilder content)
 {
     Write(logType, content.ToString());
     content.Remove(0, content.Length);
 }
예제 #33
0
 /// <summary>
 /// [T]Message の形式でログを逆順で吐き出します
 /// フィルターを掛けて表示
 /// </summary>
 /// <param name="filter">指定したレベル未満のログを非表示にします</param>
 /// <param name="Exclude">Trueを指定した場合、filter以外のログを非表示にします。</param>
 public string ToStringReverse(LOGTYPE filter, bool Exclude = false)
 {
     LogDat.Reverse();
     string ret = "";
     foreach(var it in LogDat) {
         if(Exclude) {
             if(it.GetLogType() != filter) {
                 continue;
             }
         } else {
             if(it.GetLogType() < filter) {
                 continue;
             }
         }
         ret += it.ToString();
     }
     LogDat.Reverse();
     return ret;
 }