Esempio n. 1
0
 public void Log(loglevel logLevel, string Message)
 {
     Console.WriteLine(string.Format("Logging message: '{0}'", Message));
     lines.Add(new LogItem {
         LogLevel = logLevel, LogMessage = string.Format("Logging message: '{0}'", Message)
     });
 }
Esempio n. 2
0
            public logItem(string text, loglevel level = loglevel.normal, Color?colour = null, bool noLineBreak = false, bool banner = false, bool pause = false, bool skipheader = false, int skipLevel = 1)
            {
                this.logText     = text;
                this.level       = level;
                this.colour      = colour;
                this.noLineBreak = noLineBreak;
                this.banner      = banner;
                this.pause       = pause;
                this.skipheader  = skipheader;
                this.skipLevel   = skipLevel;

                StackFrame frame  = new StackFrame(skipLevel);
                var        method = frame.GetMethod();

                classtype  = method.DeclaringType.ToString();
                methodName = method.Name;
            }
Esempio n. 3
0
 public static void log(String text, loglevel level)
 {
     //if (level >= logginglevel)
     file.WriteLine(DateTime.Now.ToString("HH:mm:ss.fff") + " | " + level.ToString() + " | " + text);
     file.Flush();
 }
Esempio n. 4
0
 public static void log(String text, loglevel level)
 {
     //if (level >= logginglevel)
     file.WriteLine(DateTime.Now.ToString("HH:mm:ss.fff") + " | " + level.ToString() + " | " + text);
     file.Flush();
 }
Esempio n. 5
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="text"></param>
        /// <param name="level"></param>
        /// <param name="colour"></param>
        /// <param name="noLineBreak"></param>
        /// <param name="banner"></param>
        /// <param name="pause"></param>
        /// <param name="skipheader"></param>
        /// <param name="skipLevel">Levels of the stack to skip when getting the calling class</param>
        public void log(string text, loglevel level = loglevel.normal, ConsoleColor colour = ConsoleColor.White, bool noLineBreak = false, bool banner = false, bool pause = false, bool skipheader = false, int skipLevel = 1)
        {
            //TODO - add exceptions into the log.

            //check logfile correct
            if (initialised && Roboto.Settings.enableFileLogging && DateTime.Now > currentLogFileDate.AddHours(Roboto.Settings.rotateLogsEveryXHours))
            {
                initialised = false;
                try
                {
                    log("Rotating Logs", loglevel.warn, ConsoleColor.White, false, true);
                    finalise();
                    initialise();
                }
                catch (Exception e)
                {
                    initialised = false;
                    log("Error rotating logs! File logging disabled. " + e.ToString(), loglevel.critical);
                }
            }

            if (logLastFlushed < DateTime.Now.AddMinutes(-5))
            {
                textWriter.Flush();
                logLastFlushed = DateTime.Now;
                log("Flushed logfile", loglevel.low);
            }


            StackFrame frame      = new StackFrame(skipLevel);
            var        method     = frame.GetMethod();
            string     classtype  = method.DeclaringType.ToString();
            string     methodName = method.Name;



            //guess colour
            if (colour == ConsoleColor.White)
            {
                switch (level)
                {
                case loglevel.verbose:
                    colour = ConsoleColor.Gray;
                    break;

                case loglevel.low:
                    colour = ConsoleColor.DarkGreen;
                    break;

                case loglevel.normal:
                    colour = ConsoleColor.Cyan;
                    break;

                case loglevel.warn:
                    colour = ConsoleColor.Magenta;
                    break;

                case loglevel.high:
                    colour = ConsoleColor.Yellow;
                    if (initialised)
                    {
                        Roboto.Settings.stats.logStat(new statItem("High Errors", typeof(logging)));
                    }
                    break;

                case loglevel.critical:
                    colour = ConsoleColor.Red;
                    if (initialised)
                    {
                        Roboto.Settings.stats.logStat(new statItem("Critical Errors", typeof(logging)));
                    }
                    break;
                }
            }

            Console.ForegroundColor = colour;

            if (noLineBreak)
            {
                write(text);
                followOnLine = true;
            }
            else
            {
                //clear any trailing lines from write's instead of writelines
                if (followOnLine)
                {
                    writeLine("");
                    followOnLine = false;
                }
                //add our time and module stamps
                string outputString = "";
                if (banner == false && skipheader == false)
                {
                    outputString += DateTime.Now.ToString("dd-MM-yyyy  HH:mm:ss") + " - "
                                    + level.ToString().Substring(0, 2).ToUpper() + " - "
                                    + (classtype.ToString() + ":" + methodName).PadRight(45)
                                    + " - ";
                }
                else
                {
                    outputString += "".PadRight(53);
                }

                //add the main text
                outputString += text;

                //add a row of *** for a banner
                if (banner)
                {
                    writeLine("".PadLeft(Console.WindowWidth - 1, bannerChar));
                }
                //write the main line
                writeLine(outputString);
                //another row of ***
                if (banner)
                {
                    writeLine("".PadLeft(Console.WindowWidth - 1, bannerChar));
                }
                //pause if needed
                if (pause)
                {
                    writeLine("Press any key to continue");
                    Console.ReadKey();
                }
            }
            Console.ResetColor();
        }
Esempio n. 6
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="text"></param>
 /// <param name="level"></param>
 /// <param name="colour"></param>
 /// <param name="noLineBreak"></param>
 /// <param name="banner"></param>
 /// <param name="pause"></param>
 /// <param name="skipheader"></param>
 /// <param name="skipLevel">Levels of the stack to skip when getting the calling class</param>
 public void log(string text, loglevel level = loglevel.normal, Color?colour = null, bool noLineBreak = false, bool banner = false, bool pause = false, bool skipheader = false, int skipLevel = 1)
 {
     log(new logItem(text, level, colour, noLineBreak, banner, pause, skipheader, skipLevel));
 }
Esempio n. 7
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="text"></param>
        /// <param name="level"></param>
        /// <param name="colour"></param>
        /// <param name="noLineBreak"></param>
        /// <param name="banner"></param>
        /// <param name="pause"></param>
        /// <param name="skipheader"></param>
        /// <param name="skipLevel">Levels of the stack to skip when getting the calling class</param>
        public void log(string text, loglevel level = loglevel.normal, ConsoleColor colour = ConsoleColor.White, bool noLineBreak = false, bool banner = false, bool pause = false, bool skipheader = false, int skipLevel = 1)
        {
            //TODO - add exceptions into the log.

            //check logfile correct
            if (initialised && Roboto.Settings.enableFileLogging && DateTime.Now > currentLogFileDate.AddHours(Roboto.Settings.rotateLogsEveryXHours))
            {
                initialised = false;
                try
                {
                    log("Rotating Logs", loglevel.warn, ConsoleColor.White, false, true);
                    finalise();
                    initialise();
                }
                catch (Exception e)
                {
                    initialised = false;
                    log("Error rotating logs! File logging disabled. " + e.ToString(), loglevel.critical);
                }
            }

            StackFrame frame = new StackFrame(skipLevel);
            var method = frame.GetMethod();
            string classtype = method.DeclaringType.ToString();
            string methodName = method.Name;

            //guess colour
            if (colour == ConsoleColor.White)
            {
                switch(level)
                {
                    case loglevel.verbose:
                        colour = ConsoleColor.Gray;
                        break;
                    case loglevel.low:
                        colour = ConsoleColor.DarkGreen;
                        break;
                    case loglevel.normal:
                        colour = ConsoleColor.Blue;
                        break;
                    case loglevel.warn:
                        colour = ConsoleColor.Magenta;
                        break;
                    case loglevel.high:
                        colour = ConsoleColor.Yellow;
                        if (initialised)
                        {
                            Roboto.Settings.stats.logStat(new statItem("High Errors", typeof(logging)));
                        }
                        break;
                    case loglevel.critical:
                        colour = ConsoleColor.Red;
                        if (initialised)
                        {
                            Roboto.Settings.stats.logStat(new statItem("Critical Errors", typeof(logging)));
                        }
                        break;
                }
            }

            Console.ForegroundColor = colour;

            if (noLineBreak)
            {
                write(text);
                followOnLine = true;
            }
            else
            {
                //clear any trailing lines from write's instead of writelines
                if (followOnLine)
                {
                    writeLine("");
                    followOnLine = false;
                }
                //add our time and module stamps
                string outputString = "";
                if (banner == false && skipheader == false)
                {
                    outputString += DateTime.Now.ToString("dd-MM-yyyy  HH:mm:ss") + " - "
                        + level.ToString().Substring(0,2).ToUpper() + " - "
                        + (classtype.ToString()  + ":" + methodName).PadRight(45)
                        +  " - ";
                }
                else
                {
                    outputString += "".PadRight(53);
                }

                //add the main text
                outputString +=  text;

                //add a row of *** for a banner
                if (banner) { writeLine("".PadLeft(Console.WindowWidth-1, bannerChar)); }
                //write the main line
                writeLine(outputString);
                //another row of ***
                if (banner) { writeLine("".PadLeft(Console.WindowWidth-1, bannerChar)); }
                //pause if needed
                if (pause)
                {
                    writeLine("Press any key to continue");
                    Console.ReadKey();
                }

            }
            Console.ResetColor();
        }