// <appender name="console" type="log4net.Appender.ColoredConsoleAppender"> // <mapping> // <level value="ERROR" /> // <foreColor value="White" /> // <backColor value="Red, HighIntensity" /> // </mapping> // <mapping> // <level value="WARN" /> // <foreColor value="Yellow, HighIntensity" /> // </mapping> // <mapping> // <level value="INFO" /> // <foreColor value="Green" /> // </mapping> // <layout type="log4net.Layout.PatternLayout"> // <conversionPattern value="%date %newline%message%newline%newline" /> // </layout> // </appender> public static void AddConsoleAppender(this log4net.Repository.ILoggerRepository loggerRepo) { var appender = new log4net.Appender.ColoredConsoleAppender(); appender.Name = "console"; appender.Layout = new log4net.Layout.PatternLayout("%date %newline%message%newline%newline"); var errorMapping = new log4net.Appender.ColoredConsoleAppender.LevelColors(); errorMapping.ForeColor = log4net.Appender.ColoredConsoleAppender.Colors.White; errorMapping.BackColor = log4net.Appender.ColoredConsoleAppender.Colors.Red & log4net.Appender.ColoredConsoleAppender.Colors.HighIntensity; errorMapping.Level = log4net.Core.Level.Error; appender.AddMapping(errorMapping); var warnMapping = new log4net.Appender.ColoredConsoleAppender.LevelColors(); warnMapping.BackColor = log4net.Appender.ColoredConsoleAppender.Colors.Yellow & log4net.Appender.ColoredConsoleAppender.Colors.HighIntensity; warnMapping.Level = log4net.Core.Level.Warn; appender.AddMapping(warnMapping); var infoMapping = new log4net.Appender.ColoredConsoleAppender.LevelColors(); infoMapping.BackColor = log4net.Appender.ColoredConsoleAppender.Colors.Green; infoMapping.Level = log4net.Core.Level.Info; appender.AddMapping(infoMapping); appender.ActivateOptions(); loggerRepo.AddAppender(appender); }
// <appender name="console" type="log4net.Appender.ColoredConsoleAppender"> // <mapping> // <level value="ERROR" /> // <foreColor value="White" /> // <backColor value="Red, HighIntensity" /> // </mapping> // <mapping> // <level value="WARN" /> // <foreColor value="Yellow, HighIntensity" /> // </mapping> // <mapping> // <level value="INFO" /> // <foreColor value="Green" /> // </mapping> // <layout type="log4net.Layout.PatternLayout"> // <conversionPattern value="%date %newline%message%newline%newline" /> // </layout> // </appender> public static void AddConsoleAppender(this log4net.Repository.ILoggerRepository loggerRepo) { var appender = new log4net.Appender.ColoredConsoleAppender(); appender.Name = "console"; appender.Layout = new log4net.Layout.PatternLayout("%date %newline%message%newline%newline"); var errorMapping = new log4net.Appender.ColoredConsoleAppender.LevelColors(); errorMapping.ForeColor = log4net.Appender.ColoredConsoleAppender.Colors.White; errorMapping.BackColor = log4net.Appender.ColoredConsoleAppender.Colors.Red & log4net.Appender.ColoredConsoleAppender.Colors.HighIntensity; errorMapping.Level = log4net.Core.Level.Error; appender.AddMapping(errorMapping); var warnMapping = new log4net.Appender.ColoredConsoleAppender.LevelColors(); warnMapping.BackColor = log4net.Appender.ColoredConsoleAppender.Colors.Yellow & log4net.Appender.ColoredConsoleAppender.Colors.HighIntensity; warnMapping.Level = log4net.Core.Level.Warn; appender.AddMapping(warnMapping); var infoMapping = new log4net.Appender.ColoredConsoleAppender.LevelColors(); infoMapping.BackColor = log4net.Appender.ColoredConsoleAppender.Colors.Green; infoMapping.Level = log4net.Core.Level.Info; appender.AddMapping(infoMapping); appender.ActivateOptions(); loggerRepo.AddAppender(appender); }
static void Main(string[] args) { bool coloredLogging = true; bool printHelp = false; bool printVersion = false; // Name the main thread Thread.CurrentThread.Name = "Main"; #region Command Line Argument Handling Mono.Options.OptionSet set = new Mono.Options.OptionSet() { { "nocolor", "Disable colored console logging", v => coloredLogging = false }, { "h|?|help", "Shows launch options", v => printHelp = true }, { "version", "Show version information", v => printVersion = true } }; set.Parse(args); if (printHelp) { set.WriteOptionDescriptions(Console.Out); return; } if (printVersion) { string version = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(); Console.WriteLine("Simian " + version); return; } #endregion Command Line Argument Handling #region log4net Setup // If error level reporting isn't enabled we assume no logger is configured and initialize a default appender if (!m_log.Logger.IsEnabledFor(log4net.Core.Level.Error)) { log4net.Appender.AppenderSkeleton appender; if (coloredLogging) { log4net.Appender.ColoredConsoleAppender coloredAppender = new log4net.Appender.ColoredConsoleAppender(); var mapping = new log4net.Appender.ColoredConsoleAppender.LevelColors(); mapping.Level = log4net.Core.Level.Debug; mapping.ForeColor = log4net.Appender.ColoredConsoleAppender.Colors.HighIntensity; coloredAppender.AddMapping(mapping); mapping = new log4net.Appender.ColoredConsoleAppender.LevelColors(); mapping.Level = log4net.Core.Level.Info; mapping.ForeColor = log4net.Appender.ColoredConsoleAppender.Colors.White; coloredAppender.AddMapping(mapping); mapping = new log4net.Appender.ColoredConsoleAppender.LevelColors(); mapping.Level = log4net.Core.Level.Warn; mapping.BackColor = log4net.Appender.ColoredConsoleAppender.Colors.Purple; mapping.ForeColor = log4net.Appender.ColoredConsoleAppender.Colors.White; coloredAppender.AddMapping(mapping); mapping = new log4net.Appender.ColoredConsoleAppender.LevelColors(); mapping.Level = log4net.Core.Level.Error; mapping.BackColor = log4net.Appender.ColoredConsoleAppender.Colors.Red; mapping.ForeColor = log4net.Appender.ColoredConsoleAppender.Colors.White; coloredAppender.AddMapping(mapping); appender = coloredAppender; } else { appender = new log4net.Appender.ConsoleAppender(); } appender.Layout = new log4net.Layout.PatternLayout("%timestamp [%thread] %-5level %logger - %message%newline"); appender.ActivateOptions(); BasicConfigurator.Configure(appender); m_log.Info("No log configuration found, defaulting to console logging"); } // Hook up Debug.Assert statements to log4net Debug.Listeners.Insert(0, new log4netTraceListener()); #endregion log4net Setup // Set the working directory to the application dir Directory.SetCurrentDirectory(Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location)); // Initialize the Simian object m_simian = new Simian(); // Handle Ctrl+C Console.CancelKeyPress += delegate(object sender, ConsoleCancelEventArgs e) { e.Cancel = true; m_simian.Shutdown(); m_running = false; }; // Attempt to load modules if (m_simian.LoadModules()) { // Initialize the interactive console InteractiveConsole(); } else { m_log.Error("Application module loading failed, shutting down"); } }
static void Main(string[] args) { bool coloredLogging = true; bool printHelp = false; bool printVersion = false; // Name the main thread Thread.CurrentThread.Name = "Main"; #region Command Line Argument Handling Mono.Options.OptionSet set = new Mono.Options.OptionSet() { { "nocolor", "Disable colored console logging", v => coloredLogging = false }, { "h|?|help", "Shows launch options", v => printHelp = true }, { "version", "Show version information", v => printVersion = true } }; set.Parse(args); if (printHelp) { set.WriteOptionDescriptions(Console.Out); return; } if (printVersion) { string version = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(); Console.WriteLine("Simian " + version); return; } #endregion Command Line Argument Handling #region log4net Setup // If error level reporting isn't enabled we assume no logger is configured and initialize a default appender if (!m_log.Logger.IsEnabledFor(log4net.Core.Level.Error)) { log4net.Appender.AppenderSkeleton appender; if (coloredLogging) { log4net.Appender.ColoredConsoleAppender coloredAppender = new log4net.Appender.ColoredConsoleAppender(); var mapping = new log4net.Appender.ColoredConsoleAppender.LevelColors(); mapping.Level = log4net.Core.Level.Debug; mapping.ForeColor = log4net.Appender.ColoredConsoleAppender.Colors.HighIntensity; coloredAppender.AddMapping(mapping); mapping = new log4net.Appender.ColoredConsoleAppender.LevelColors(); mapping.Level = log4net.Core.Level.Info; mapping.ForeColor = log4net.Appender.ColoredConsoleAppender.Colors.White; coloredAppender.AddMapping(mapping); mapping = new log4net.Appender.ColoredConsoleAppender.LevelColors(); mapping.Level = log4net.Core.Level.Warn; mapping.BackColor = log4net.Appender.ColoredConsoleAppender.Colors.Purple; mapping.ForeColor = log4net.Appender.ColoredConsoleAppender.Colors.White; coloredAppender.AddMapping(mapping); mapping = new log4net.Appender.ColoredConsoleAppender.LevelColors(); mapping.Level = log4net.Core.Level.Error; mapping.BackColor = log4net.Appender.ColoredConsoleAppender.Colors.Red; mapping.ForeColor = log4net.Appender.ColoredConsoleAppender.Colors.White; coloredAppender.AddMapping(mapping); appender = coloredAppender; } else { appender = new log4net.Appender.ConsoleAppender(); } appender.Layout = new log4net.Layout.PatternLayout("%timestamp [%thread] %-5level %logger - %message%newline"); appender.ActivateOptions(); BasicConfigurator.Configure(appender); m_log.Info("No log configuration found, defaulting to console logging"); } // Hook up Debug.Assert statements to log4net Debug.Listeners.Insert(0, new log4netTraceListener()); #endregion log4net Setup // Set the working directory to the application dir Directory.SetCurrentDirectory(Util.ExecutingDirectory()); // Initialize the Simian object m_simian = new Simian(); // Handle Ctrl+C Console.CancelKeyPress += delegate(object sender, ConsoleCancelEventArgs e) { e.Cancel = true; m_simian.Shutdown(); m_running = false; }; // Attempt to load modules if (m_simian.LoadModules()) { // Initialize the interactive console InteractiveConsole(); } else { m_log.Error("Application module loading failed, shutting down"); } }