private void SetConsoleColor(ConsoleLogLevel logLevel)
        {
            switch (logLevel)
            {
            case ConsoleLogLevel.Error:
                Console.ForegroundColor = ConsoleColor.Red;
                break;

            case ConsoleLogLevel.Warning:
                Console.ForegroundColor = ConsoleColor.Yellow;
                break;

            case ConsoleLogLevel.Information:
                Console.ForegroundColor = ConsoleColor.White;
                break;

            case ConsoleLogLevel.Success:
                Console.ForegroundColor = ConsoleColor.Green;
                break;

            case ConsoleLogLevel.Highlighted:
                Console.ForegroundColor = ConsoleColor.Black;
                Console.BackgroundColor = ConsoleColor.White;
                break;
            }
        }
Exemple #2
0
        public void LogStructured(INode node, ConsoleLogLevel logLevel, string format, object[] args)
        {
            switch (logLevel)
            {
            case ConsoleLogLevel.Debug:
                Console.ForegroundColor = ConsoleColor.Gray;
                break;

            case ConsoleLogLevel.Info:
                Console.ForegroundColor = ConsoleColor.Cyan;
                break;

            case ConsoleLogLevel.Warning:
                Console.ForegroundColor = ConsoleColor.Yellow;
                break;

            case ConsoleLogLevel.Error:
                Console.ForegroundColor = ConsoleColor.Red;
                break;
            }

            if (args == null)
            {
                Console.WriteLine(format);
            }
            else
            {
                Console.WriteLine(format, args);
            }

            Console.ForegroundColor = ConsoleColor.White;
        }
 /**
  * <summary>Write a line to the console. </summary>
  * <param name="message">String that will be appended to the appendString. </param>
  * <param name="appendString">The string to append to.</param>
  * <param name="logLevel">The minimum logLevel setting required to display this log message</param>
  */
 public void WriteLineAppendString(string message, ref string appendString, ConsoleLogLevel logLevel)
 {
     if (CheckLogLevel(logLevel))
     {
         appendString += message + Environment.NewLine;
     }
 }
 private void LogMessage(ConsoleLogLevel level, string module, string message)
 {
     lock(_lock)
     {
         WriteMessage(level, module, message);
     }
 }
Exemple #5
0
        /// <summary>Generate a message prefix for the current time.</summary>
        /// <param name="source">The name of the mod logging the message.</param>
        /// <param name="level">The log level.</param>
        private string GenerateMessagePrefix(string source, ConsoleLogLevel level)
        {
            string levelStr    = level.ToString().ToUpper().PadRight(Monitor.MaxLevelLength);
            int?   playerIndex = this.GetScreenIdForLog();

            return($"[{DateTime.Now:HH:mm:ss} {levelStr}{(playerIndex != null ? $" screen_{playerIndex}" : "")} {source}]");
        }
Exemple #6
0
        public static DataReceivedEventHandler WriteOutput(IConsole console, ConsoleLogLevel logLevel = ConsoleLogLevel.Default)
        {
            switch (logLevel)
            {
            case ConsoleLogLevel.Error:
                return((o, e) =>
                {
                    if (!string.IsNullOrWhiteSpace(e?.Data))
                    {
                        console.WriteErrorLine(e.Data);
                    }
                });

            case ConsoleLogLevel.Warning:
                return((o, e) =>
                {
                    if (!string.IsNullOrWhiteSpace(e?.Data))
                    {
                        console.WriteWarningLine(e.Data);
                    }
                });

            case ConsoleLogLevel.Default:
            default:
                return((o, e) =>
                {
                    if (!string.IsNullOrWhiteSpace(e?.Data))
                    {
                        console.WriteDefaultLine(e.Data);
                    }
                });
            }
        }
 /**
  * <summary>Write a line to the console. </summary>
  * <param name="message">String to write to console. </param>
  * <param name="tbControl">The textbox control for the console.</param>
  * <param name="logLevel">The minimum logLevel setting required to display this log message</param>
  */
 public void WriteLine(string message, TextBox tbControl, ConsoleLogLevel logLevel)
 {
     if (CheckLogLevel(logLevel))
     {
         tbControl.AppendText(message);
         tbControl.AppendText(Environment.NewLine);
     }
 }
Exemple #8
0
 internal void WriteLine(string consoleMessage, ConsoleLogLevel level)
 {
     lock (this.consoleMessageQueue)
     {
         this.consoleMessageQueue.AddFirst(new KeyValuePair <ConsoleLogLevel, string>(level, consoleMessage));
         if (this.consoleMessageQueue.Count > 2000)
         {
             this.parseTextCache.Remove(this.consoleMessageQueue.Last.Value.Value);
             this.consoleMessageQueue.RemoveLast();
         }
     }
 }
Exemple #9
0
        private void writer(ConsoleLogLevel level, string message, Exception exception = null)
        {
            if (IsEnabled(level))
            {
                string exceptionMsg = string.Empty;
                if (exception != null)
                {
                    exceptionMsg = $", {exception.Message},{exception.StackTrace}";
                }

                Console.WriteLine($"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")}[{level.ToString()}], {message}{exceptionMsg}");
            }
        }
        public void LogStructured(INode node, ConsoleLogLevel logLevel, string format, object[] args)
        {
            var name = string.IsNullOrWhiteSpace(node.Name) ? node.Type.Name : node.Name;

            if (name.Length > 20)
            {
                name = name.Substring(0, 17) + "...";
            }

            LogInternal(new ConsoleEntry {
                Count = 1, LogLevel = logLevel, Message = args == null ? format : string.Format(format, args), Name = name
            });
        }
Exemple #11
0
        /*********
        ** Private methods
        *********/
        /// <summary>Write a message line to the log.</summary>
        /// <param name="source">The name of the mod logging the message.</param>
        /// <param name="message">The message to log.</param>
        /// <param name="level">The log level.</param>
        private void LogImpl(string source, string message, ConsoleLogLevel level)
        {
            // generate message
            string prefix         = this.GenerateMessagePrefix(source, level);
            string fullMessage    = $"{prefix} {message}";
            string consoleMessage = this.ShowFullStampInConsole ? fullMessage : $"[{source}] {message}";

            // write to console
            if (this.WriteToConsole && (this.ShowTraceInConsole || level != ConsoleLogLevel.Trace))
            {
                this.ConsoleWriter.WriteLine(this.IgnoreChar + consoleMessage, level);
            }

            // write to log file
            this.LogFile.WriteLine(fullMessage);
        }
        public void LogStructured(INode node, ConsoleLogLevel logLevel, string format, object[] args)
        {
            var name = string.IsNullOrWhiteSpace(node.Name) ? node.Type.Name : node.Name;

            if (name.Length > 20)
            {
                name = name.Substring(0, 17) + "...";
            }

            var message = (args == null ? format : string.Format(format, args)) ?? "";

            foreach (var m in message.Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries))
            {
                LogInternal(new ConsoleEntry {
                    Count = 1, LogLevel = logLevel, Message = m?.TrimEnd(), Name = name
                });
            }
        }
        public void SetLogLevel(int verboseLevel)
        {
            switch (verboseLevel)
            {
            case 3:
                _consoleLogLevel = ConsoleLogLevel.Fatal | ConsoleLogLevel.Error | ConsoleLogLevel.Warn | ConsoleLogLevel.Info;
                break;

            case 2:
                _consoleLogLevel = ConsoleLogLevel.Fatal | ConsoleLogLevel.Error | ConsoleLogLevel.Warn;
                break;

            case 1:
                _consoleLogLevel = ConsoleLogLevel.Fatal | ConsoleLogLevel.Error;
                break;

            case 0:
                _consoleLogLevel = ConsoleLogLevel.Fatal;
                break;
            }
        }
Exemple #14
0
        private void PrefixLine(ConsoleLogLevel level, bool reset = true)
        {
            switch (level)
            {
            case ConsoleLogLevel.Verbose:
                Console.ForegroundColor = ConsoleColor.Gray;
                _options.StdOut.Write($"{_options.ApplicationName}: verbose: ");
                break;

            case ConsoleLogLevel.Info:
                Console.ForegroundColor = ConsoleColor.Gray;
                _options.StdOut.Write($"{_options.ApplicationName}: info: ");
                break;

            case ConsoleLogLevel.Warn:
                Console.ForegroundColor = ConsoleColor.DarkYellow;
                _options.StdOut.Write($"{_options.ApplicationName}: warning: ");
                break;

            case ConsoleLogLevel.Error:
                Console.ForegroundColor = ConsoleColor.Red;
                _options.StdErr.Write($"{_options.ApplicationName}: error: ");
                break;

            case ConsoleLogLevel.Fatal:
                Console.ForegroundColor = ConsoleColor.White;
                Console.BackgroundColor = ConsoleColor.Red;
                _options.StdErr.Write($"{_options.ApplicationName}: fatal: ");
                break;

            default:
                throw new Exception("Unknown Console Level");
            }

            if (reset)
            {
                Console.ResetColor();
            }
        }
Exemple #15
0
 /// <summary>Write a message line to the log.</summary>
 /// <param name="message">The message to log.</param>
 /// <param name="level">The log level.</param>
 public void WriteLine(string message, ConsoleLogLevel level)
 {
     if (this.SupportsColor)
     {
         if (level == ConsoleLogLevel.Critical)
         {
             Console.BackgroundColor = ConsoleColor.Red;
             Console.ForegroundColor = ConsoleColor.White;
             Console.WriteLine(message);
             Console.ResetColor();
         }
         else
         {
             Console.ForegroundColor = this.Colors[level];
             Console.WriteLine(message);
             Console.ResetColor();
         }
     }
     else
     {
         Console.WriteLine(message);
     }
 }
Exemple #16
0
        public void LogStructured(INode node, ConsoleLogLevel logLevel, string format, object[] args)
        {
            _logShipping.AddLog(new PendingLogForShip {
                Message = args == null ? format : string.Format(format, args), LogLevel = logLevel
            });

            switch (logLevel)
            {
            case ConsoleLogLevel.Debug:
                Console.ForegroundColor = ConsoleColor.Gray;
                break;

            case ConsoleLogLevel.Info:
                Console.ForegroundColor = ConsoleColor.Cyan;
                break;

            case ConsoleLogLevel.Warning:
                Console.ForegroundColor = ConsoleColor.Yellow;
                break;

            case ConsoleLogLevel.Error:
                Console.ForegroundColor = ConsoleColor.Red;
                break;
            }

            if (args == null)
            {
                Console.WriteLine(format);
            }
            else
            {
                Console.WriteLine(format, args);
            }

            Console.ForegroundColor = ConsoleColor.White;
        }
 public void Log(String logText, ConsoleLogLevel logLevel = ConsoleLogLevel.Information)
 {
     SetConsoleColor(logLevel);
     Console.WriteLine(logText);
     Console.ResetColor();
 }
Exemple #18
0
        /// <summary>Generate a message prefix for the current time.</summary>
        /// <param name="source">The name of the mod logging the message.</param>
        /// <param name="level">The log level.</param>
        private string GenerateMessagePrefix(string source, ConsoleLogLevel level)
        {
            string levelStr = level.ToString().ToUpper().PadRight(Monitor.MaxLevelLength);

            return($"[{DateTime.Now:HH:mm:ss} {levelStr} {source}]");
        }
 /**
  * <summary>Checks the user's logLevel and returns true if they have the minimum required.</summary>
  * <param name="logLevel">The minimum logLevel.</param>
  */
 public bool CheckLogLevel(ConsoleLogLevel logLevel)
 {
     return(settings.ConsoleLogLevel >= (int)logLevel);
 }
Exemple #20
0
 public static void Log(String format, ConsoleLogLevel logLevel, params object[] arg) => Logger.Log(format, logLevel, arg);
 public QpUpdateLoggingWrapper(ConsoleLogLevel consoleLogLevel = ConsoleLogLevel.Fatal)
 {
     LogProvider.LogFactory = new NLogFactory();
     _logger          = LogProvider.GetLogger();
     _consoleLogLevel = consoleLogLevel;
 }
        public void LogStructured(INode node, ConsoleLogLevel logLevel, string format, object[] args)
        {
            var name = string.IsNullOrWhiteSpace(node.Name) ? node.Type.Name : node.Name;

            if (name.Length > 20)
            {
                name = name.Substring(0, 17) + "...";
            }

            LogInternal(new ConsoleEntry { Count = 1, LogLevel = logLevel, Message = args == null ? format : string.Format(format, args), Name = name });
        }
Exemple #23
0
 public static void Log(String logText, ConsoleLogLevel logLevel = ConsoleLogLevel.Information) => Logger.Log(logText, logLevel);
Exemple #24
0
 public void Log(string message, ConsoleLogLevel logLevel)
 {
 }
 public ConsoleLoggerProvider(ConsoleLogLevel level)
 {
     ConsoleLogger._logLevel = level;
 }
        private void WriteMessage(ConsoleLogLevel level, string module, string message)
        {
            if (_trueConsoleTop == 0)
            {
                _trueConsoleTop = Console.CursorTop;
            }

            if (_reclaimCount == 0)
            {
                _consoleWrap.WriteLine(string.Empty);
                _trueConsoleTop++;
            }
            else
            {
                _reclaimCount--;
            }

            //Set cursor to position above any current tasks
            if (_trueConsoleTop > Console.BufferHeight - 1)
            {
                _trueConsoleTop = Console.CursorTop;
            }
            Console.SetCursorPosition(0, _trueConsoleTop - 1 - _currentTaskNum);

            if (level == ConsoleLogLevel.Info)
            {
                ConsoleHelper.ConsoleToWhiteOnBlack();
            }
            else if (level == ConsoleLogLevel.Debug)
            {
                ConsoleHelper.ConsoleToGreenOnBlack();
            }
            else if (level == ConsoleLogLevel.Error)
            {
                ConsoleHelper.ConsoleToRedOnBlack();
            }

            var logMessage = GenerateLoggingMessage(level.ToString().ToUpper(), module, message);

            var outputBuilder = new StringBuilder();
            outputBuilder.Append(logMessage);

            //Shorten if overflowing buffer
            if (logMessage.Length > Console.BufferWidth)
            {
                logMessage = logMessage.Substring(0, Console.BufferWidth);
            }

            // If the new text is shorter than the old one: delete overlapping characters         
            var overlapCount = Console.BufferWidth - logMessage.Length;
            if (overlapCount > 0)
            {
                outputBuilder.Append(' ', overlapCount);
               // outputBuilder.Append('\b', overlapCount);
            }

            _consoleWrap.Write(outputBuilder.ToString());

            ConsoleHelper.ConsoleToWhiteOnBlack();
        }
Exemple #27
0
 private bool IsEnabled(ConsoleLogLevel logLevel)
 {
     return(logLevel >= _logLevel);
 }
 public void Log(String format, ConsoleLogLevel logLevel, params object[] arg)
 {
     SetConsoleColor(logLevel);
     Console.WriteLine(format, arg);
     Console.ResetColor();
 }
Exemple #29
0
        protected override void ProcessRecord()
        {
            //todo set default to scriptname.log
            string test = MyInvocation.ScriptName;

            log4net.ILog       logger      = log4net.LogManager.GetLogger("Powershell");
            System.IO.FileInfo logFileInfo = new System.IO.FileInfo(_logConfigFile);
            log4net.Config.XmlConfigurator.ConfigureAndWatch(logFileInfo);
            WriteObject(logger);

            log4net.Appender.IAppender[] appenders = log4net.LogManager.GetRepository().GetAppenders();
            foreach (log4net.Appender.IAppender logAppender in appenders)
            {
                #region RollingFilleAppender
                if ((logAppender.GetType() == typeof(log4net.Appender.RollingFileAppender)) && logAppender.Name == "OSCCDefaultRollingFileAppender")
                {
                    log4net.Appender.FileAppender fileAppender = (log4net.Appender.RollingFileAppender)logAppender;
                    if (MyInvocation.BoundParameters.ContainsKey("LogFileName"))
                    {
                        log4net.Util.PatternString dynamicFileName         = new log4net.Util.PatternString(LogFileName);
                        log4net.Util.ConverterInfo adminuiLogConverterInfo = new log4net.Util.ConverterInfo();
                        adminuiLogConverterInfo.Name = "adminuilog";
                        adminuiLogConverterInfo.Type = typeof(Log4Net_CMTrace.CMAdminUILogFolderPatternConverter);
                        log4net.Util.ConverterInfo ccmLogConverterInfo = new log4net.Util.ConverterInfo();
                        ccmLogConverterInfo.Name = "ccmlog";
                        ccmLogConverterInfo.Type = typeof(Log4Net_CMTrace.CMClientLogFolderPatternConverter);
                        log4net.Layout.PatternLayout newLayout = new log4net.Layout.PatternLayout();
                        dynamicFileName.AddConverter(adminuiLogConverterInfo);
                        dynamicFileName.AddConverter(ccmLogConverterInfo);
                        dynamicFileName.ActivateOptions();
                        //fileAppender.File = LogFileName;
                        fileAppender.File = dynamicFileName.Format();
                    }
                    else
                    {
                        if (MyInvocation.ScriptName != "")
                        {
                            fileAppender.File = MyInvocation.ScriptName + ".log";
                        }
                    }
                    if (MyInvocation.BoundParameters.ContainsKey("FileLogLevel"))
                    {
                        switch (FileLogLevel.ToLower())
                        {
                        case "off": fileAppender.Threshold = log4net.Core.Level.Off; break;

                        case "info": fileAppender.Threshold = log4net.Core.Level.Info; break;

                        case "warn": fileAppender.Threshold = log4net.Core.Level.Warn; break;

                        case "error": fileAppender.Threshold = log4net.Core.Level.Error; break;

                        case "debug": fileAppender.Threshold = log4net.Core.Level.Debug; break;

                        default: fileAppender.Threshold = log4net.Core.Level.Info; break;
                        }
                    }
                    else
                    {
                        fileAppender.Threshold = log4net.Core.Level.Info;
                    }
                    fileAppender.ActivateOptions();
                }
                #endregion

                #region OMSFilleAppender
                if ((logAppender.GetType() == typeof(log4net.Appender.FileAppender)) && logAppender.Name == "OSCCOMSFileAppender")
                {
                    log4net.Appender.FileAppender fileAppender = (log4net.Appender.FileAppender)logAppender;
                    if (MyInvocation.BoundParameters.ContainsKey("OMSLogFileName"))
                    {
                        log4net.Util.PatternString dynamicFileName         = new log4net.Util.PatternString(LogFileName);
                        log4net.Util.ConverterInfo adminuiLogConverterInfo = new log4net.Util.ConverterInfo();
                        adminuiLogConverterInfo.Name = "adminuilog";
                        adminuiLogConverterInfo.Type = typeof(Log4Net_CMTrace.CMAdminUILogFolderPatternConverter);
                        log4net.Util.ConverterInfo ccmLogConverterInfo = new log4net.Util.ConverterInfo();
                        ccmLogConverterInfo.Name = "ccmlog";
                        ccmLogConverterInfo.Type = typeof(Log4Net_CMTrace.CMClientLogFolderPatternConverter);
                        log4net.Layout.PatternLayout newLayout = new log4net.Layout.PatternLayout();
                        dynamicFileName.AddConverter(adminuiLogConverterInfo);
                        dynamicFileName.AddConverter(ccmLogConverterInfo);
                        dynamicFileName.ActivateOptions();
                        //fileAppender.File = LogFileName;
                        fileAppender.File = dynamicFileName.Format();
                    }
                    else
                    {
                        if (MyInvocation.ScriptName != "")
                        {
                            fileAppender.File = MyInvocation.ScriptName + ".OMS." + DateTime.Today.ToString("yyyyMMdd") + ".log";
                        }
                    }
                    if (MyInvocation.BoundParameters.ContainsKey("OMSFileLogLevel"))
                    {
                        switch (FileLogLevel.ToLower())
                        {
                        case "off": fileAppender.Threshold = log4net.Core.Level.Off; break;

                        case "info": fileAppender.Threshold = log4net.Core.Level.Info; break;

                        case "warn": fileAppender.Threshold = log4net.Core.Level.Warn; break;

                        case "error": fileAppender.Threshold = log4net.Core.Level.Error; break;

                        case "debug": fileAppender.Threshold = log4net.Core.Level.Debug; break;

                        default: fileAppender.Threshold = log4net.Core.Level.Info; break;
                        }
                    }
                    fileAppender.ActivateOptions();
                }
                #endregion
                #region ConsoleAppender
                if (logAppender.GetType() == typeof(log4net.Appender.ConsoleAppender))
                {
                    log4net.Appender.ConsoleAppender consoleAppender = (log4net.Appender.ConsoleAppender)logAppender;
                    if (this.Host.Name.ToLower() == "consolehost")
                    {
                        if (MultiColor == false)
                        {
                            {
                                if (MyInvocation.BoundParameters.ContainsKey("ConsoleLogLevel"))
                                {
                                    switch (ConsoleLogLevel.ToLower())
                                    {
                                    case "off": consoleAppender.Threshold = log4net.Core.Level.Off; break;

                                    case "info": consoleAppender.Threshold = log4net.Core.Level.Info; break;

                                    case "warn": consoleAppender.Threshold = log4net.Core.Level.Warn; break;

                                    case "error": consoleAppender.Threshold = log4net.Core.Level.Error; break;

                                    case "debug": consoleAppender.Threshold = log4net.Core.Level.Debug; break;

                                    default: consoleAppender.Threshold = log4net.Core.Level.Info; break;
                                    }
                                }
                            }
                        }
                        else
                        {
                            consoleAppender.Threshold = log4net.Core.Level.Off;
                        }
                    }
                    else
                    {
                        if (this.Host.Name.ToLower() == "windows powershell ise host")
                        {
                            if (MyInvocation.BoundParameters.ContainsKey("ConsoleLogLevel"))
                            {
                                switch (ConsoleLogLevel.ToLower())
                                {
                                case "off": consoleAppender.Threshold = log4net.Core.Level.Off; break;

                                case "info": consoleAppender.Threshold = log4net.Core.Level.Info; break;

                                case "warn": consoleAppender.Threshold = log4net.Core.Level.Warn; break;

                                case "error": consoleAppender.Threshold = log4net.Core.Level.Error; break;

                                case "debug": consoleAppender.Threshold = log4net.Core.Level.Debug; break;

                                default: consoleAppender.Threshold = log4net.Core.Level.Info; break;
                                }
                            }
                            if ((MyInvocation.BoundParameters.ContainsKey("MultiColor")) && (MultiColor == true))
                            {
                                Console.WriteLine("Powershell ISe does not support multi colored displays.");
                            }
                        }
                    }
                    consoleAppender.ActivateOptions();
                }
                #endregion
                #region coloredconsoleappender
                if (logAppender.GetType() == typeof(log4net.Appender.ColoredConsoleAppender))
                {
                    log4net.Appender.ColoredConsoleAppender coloredConsoleAppender = (log4net.Appender.ColoredConsoleAppender)logAppender;
                    if (this.Host.Name.ToLower() == "consolehost")
                    {
                        if (MultiColor == true)
                        {
                            if (MyInvocation.BoundParameters.ContainsKey("ConsoleLogLevel"))
                            {
                                switch (ConsoleLogLevel.ToLower())
                                {
                                case "off": coloredConsoleAppender.Threshold = log4net.Core.Level.Off; break;

                                case "info": coloredConsoleAppender.Threshold = log4net.Core.Level.Info; break;

                                case "warn": coloredConsoleAppender.Threshold = log4net.Core.Level.Warn; break;

                                case "error": coloredConsoleAppender.Threshold = log4net.Core.Level.Error; break;

                                case "debug": coloredConsoleAppender.Threshold = log4net.Core.Level.Debug; break;

                                default: coloredConsoleAppender.Threshold = log4net.Core.Level.Info; break;
                                }
                            }
                        }
                        else
                        {
                            coloredConsoleAppender.Threshold = log4net.Core.Level.Off;
                        }
                    }
                    if (this.Host.Name.ToLower() == "windows powershell ise host")
                    {
                        coloredConsoleAppender.Threshold = log4net.Core.Level.Off;
                    }
                    coloredConsoleAppender.ActivateOptions();
                }
                #endregion
            }
        }
 public QpUpdateLoggingWrapper(ConsoleLogLevel consoleLogLevel = ConsoleLogLevel.Fatal)
 {
     _consoleLogLevel = consoleLogLevel;
 }