/// <summary>
        /// Comparer
        /// </summary>
        /// <param name="x"></param>
        /// <param name="y"></param>
        /// <returns></returns>
        public static int ListSortCompare(FileLogData x, FileLogData y)
        {
            /*if (x == null)
             * {
             *  if (y == null)
             *      return 0;
             *  else
             *      return -1;
             * }
             * else
             * {
             *  if (y == null)
             *      return 1;
             *  else
             *  {*/
            if (x.time < y.time)
            {
                return(-1);
            }
            else if (x.time > y.time)
            {
                return(1);
            }
            else
            {
                return(0);
            }

            /*        }
             *  }*/
        }
        /// <summary>
        /// This static function logs after some time, till log all texts that send will be saved as lines.
        /// You can set interval to log.
        /// </summary>
        /// <param name="type">Type of the log</param>
        /// <param name="level">Log level of the log</param>
        /// <param name="text">Text</param>
        /// <param name="p">This parameter is only used on EventLog type, it gives an id to event</param>
        public static void LogTimed(LogType type, LogLevel level, string text, params int[] p)
        {
            if ((logLevel & level) == 0)
            {
                return;
            }

#if !NETFX_CORE
            switch (type)
            {
            case LogType.CONSOLE:
            {
                if (!timedConsoleLog.ContainsKey(level))
                {
                    timedConsoleLog.Add(level, new StringBuilder());
                }

                if (timedConsoleLog[level].ToString() == "")
                {
                    timerConsole.Start();
                    if (!timerConsoleAdded)
                    {
                        timerConsole.Tick += new EventHandler(ConsoleTimerLog);
                        timerConsoleAdded  = true;
                    }
                }

                timedConsoleLog[level].AppendLine(DateTime.Now.ToString() + ":" + level + ":" + Assembly.GetExecutingAssembly().GetName().Name + ":" + text);
            } break;

            case LogType.EVENTLOG:
            {
            } break;

            case LogType.FILE:
            {
                if (!timedFileLog.ContainsKey(level))
                {
                    timedFileLog.Add(level, new List <FileLogData>());
                }

                if (timedFileLog[level].Count == 0)
                {
                    timerFileLog.Start();
                    if (!timerFileLogAdded)
                    {
                        timerFileLog.Tick += new EventHandler(FileTimerLog);
                        timerFileLogAdded  = true;
                    }
                }

                FileLogData fld = new FileLogData();
                fld.level = level;
                fld.time  = DateTime.Now;
                fld.data  = Assembly.GetExecutingAssembly().GetName().Name + ":" + text;
                timedFileLog[level].Add(fld);
                //timedFileLog[level].AppendLine(DateTime.Now.ToString() + ":" + level + ":" + Assembly.GetEntryAssembly().GetName().Name + ":" + text);
            } break;
            }
            ;
#endif
        }