Ejemplo n.º 1
0
 /// <summary>
 /// 日志写入以及日志界面更新Task
 /// </summary>
 private void RunTask()
 {
     while (mGetLogQueueFlg)
     {
         lock (locker)
         {
             foreach (KeyValuePair <string, IJFLogger> logger in existtLoggers)
             {
                 JFLogger log = logger.Value as JFLogger;
                 if (log.mLogQueue.Count > 0)
                 {
                     JFLogger.LogRecord rcd;
                     lock (log.mLogQueue)
                     {
                         rcd = log.mLogQueue.Dequeue() as JFLogger.LogRecord;
                     }
                     //存文件
                     log.ShowInfo2UI(rcd);
                     //写日志
                     string commandtext = string.Format("insert into {0} values('{1}','{2}','{3}')", logger.Key, rcd.Time.ToString("yyyy-MM-dd HH:mm:ss"), log.TransLogLevelToString(rcd.Level), rcd.Info);
                     jFSQLiteDB.ExecuteNonQuery(connectstring, CommandType.Text, commandtext);
                 }
             }
         }
     }
 }
Ejemplo n.º 2
0
        /// <summary>
        /// 获取一个日志对象
        /// </summary>
        /// <param name="name">日志对象(名称)标识</param>
        /// <returns></returns>
        public IJFLogger GetLogger(string name)
        {
            string connectionCreatTableString = string.Format("CREATE TABLE IF NOT EXISTS {0}(Time string,LogLevel string,Message string)", name);

            if (threadRunTask == null)
            {
                threadRunTask = new Thread(RunTask);
                threadRunTask.Start();
            }
            if (string.IsNullOrEmpty(name))
            {
                return(null);
            }
            lock (locker)
            {
                if (existtLoggers.ContainsKey(name))
                {
                    return(existtLoggers[name] as IJFLogger);
                }

                JFLogger ret = new JFLogger(name);
                if (jFSQLiteDB.CreateDB(connectstring))
                {
                    jFSQLiteDB.CreateOrDeleteTable(connectionCreatTableString);
                }

                existtLoggers.Add(name, ret);
                for (int i = 0; i < waitBindUIs.Count; i++)
                {
                    KeyValuePair <string, UCLogger> item = waitBindUIs[i];
                    if (item.Key == name)
                    {
                        ret.AddUI(item.Value);
                        waitBindUIs.Remove(item);
                        i--;
                    }
                }
                return(ret as IJFLogger);
            }
        }