예제 #1
1
        /// <summary>
        /// Configure Log4Net
        /// </summary>
        public void Log4NetConfig(bool isConsoleEnabled, string traceFilePath)
        {
            if (isConsoleEnabled)
            {
                // Add console output
                log4net.Appender.ConsoleAppender ca = new log4net.Appender.ConsoleAppender();
                ca.Layout = new log4net.Layout.PatternLayout("%-5level %message%newline");
                ca.Threshold = log4net.Core.Level.All;
                log4net.Config.BasicConfigurator.Configure(ca);
                ca.ActivateOptions();
            }

            if (traceFilePath != "")
            {
                // Add file output
                log4net.Appender.RollingFileAppender rfa = new log4net.Appender.RollingFileAppender();
                rfa.AppendToFile = true;
                rfa.File = traceFilePath;
                rfa.MaxFileSize = 4096000;
                rfa.MaxSizeRollBackups = 2;
                rfa.Threshold = log4net.Core.Level.All;
                rfa.Layout = new log4net.Layout.PatternLayout("%-5level %date{HH:mm:ss,fff} " +
                                                              "[%thread] %logger (%file:%line) " +
                                                              "%newline%message%newline%newline");
                log4net.Config.BasicConfigurator.Configure(rfa);
                rfa.ActivateOptions();
            }

            // Set Root level
            log4net.Repository.Hierarchy.Hierarchy h =
                (log4net.Repository.Hierarchy.Hierarchy)log4net.LogManager.GetRepository ();
              		log4net.Repository.Hierarchy.Logger rootLogger = h.Root;
            rootLogger.Level = log4net.Core.Level.All;
        }
예제 #2
0
        static void Main(string[] args)
        {
            var props = new NameValueCollection();
            props["configType"] = "EXTERNAL";
            LogManager.Adapter = new Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter(props);

            var layout = new log4net.Layout.PatternLayout("%d [%t] %-5p %c [%x] <%X{auth}> - %m%n");
            var level = log4net.Core.Level.Debug;

            var appender = new log4net.Appender.ConsoleAppender
            {
                Layout = layout,
                Threshold = level
            };
            log4net.Config.BasicConfigurator.Configure(appender);

            if(!MsmqInstallation.IsInstallationGood())
            {
                Console.WriteLine("MSMQ is not configured correctly for use with NServiceBus");

                if(!args.ToList().Contains("/i"))
                {
                    Console.WriteLine("Please run with /i to reconfigure MSMQ");
                    return;
                }
            }
            MsmqInstallation.StartMsmqIfNecessary();

            DtcUtil.StartDtcIfNecessary();

            PerformanceCounterInstallation.InstallCounters();
        }
예제 #3
0
        static void Main(string[] args)
        {
            var props = new NameValueCollection();

            props["configType"] = "EXTERNAL";
            LogManager.Adapter  = new Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter(props);

            var layout = new log4net.Layout.PatternLayout("%d [%t] %-5p %c [%x] <%X{auth}> - %m%n");
            var level  = log4net.Core.Level.Debug;

            var appender = new log4net.Appender.ConsoleAppender
            {
                Layout    = layout,
                Threshold = level
            };

            log4net.Config.BasicConfigurator.Configure(appender);

            if (!MsmqInstallation.IsInstallationGood())
            {
                Console.WriteLine("MSMQ is not configured correctly for use with NServiceBus");

                if (!args.ToList().Contains("/i"))
                {
                    Console.WriteLine("Please run with /i to reconfigure MSMQ");
                    return;
                }
            }
            MsmqInstallation.StartMsmqIfNecessary();

            DtcUtil.StartDtcIfNecessary();

            PerformanceCounterInstallation.InstallCounters();
        }
예제 #4
0
파일: Program.cs 프로젝트: vigoo/bari
        private static void EnableConsoleDebugLog()
        {
            log4net.Appender.IAppender appender;
            var consoleAppender = new log4net.Appender.ColoredConsoleAppender
                {
                    Layout = new SimpleLayout(),
                    Threshold = Level.All
                };
            try
            {
                consoleAppender.ActivateOptions();
                appender = consoleAppender;
            }
            catch (EntryPointNotFoundException)
            {
                var fallbackAppender = new log4net.Appender.ConsoleAppender
                {
                    Layout = new SimpleLayout(),
                    Threshold = Level.All
                };

                fallbackAppender.ActivateOptions();
                appender = fallbackAppender;
            }

            var repo = (Hierarchy)log4net.LogManager.GetRepository();
            var root = repo.Root;
            root.AddAppender(appender);

            repo.Configured = true;

            log.Info("Verbose logging to console enabled.");
        }
예제 #5
0
 /// <summary>
 /// Initializes the logger
 /// </summary>
 private static void SetupLogging()
 {
     log4net.Appender.ConsoleAppender appender = new log4net.Appender.ConsoleAppender();
     appender.Name   = "ConsoleAppender";
     appender.Layout = new log4net.Layout.PatternLayout("[%date{dd.MM.yyyy HH:mm:ss,fff}]-%-5level-[%c]: %message%newline");
     log4net.Config.BasicConfigurator.Configure(appender);
 }
예제 #6
0
        private static void EnableConsoleDebugLog()
        {
            log4net.Appender.IAppender appender;
            var consoleAppender = new log4net.Appender.ColoredConsoleAppender
            {
                Layout    = new SimpleLayout(),
                Threshold = Level.All
            };

            try
            {
                consoleAppender.ActivateOptions();
                appender = consoleAppender;
            }
            catch (EntryPointNotFoundException)
            {
                var fallbackAppender = new log4net.Appender.ConsoleAppender
                {
                    Layout    = new SimpleLayout(),
                    Threshold = Level.All
                };

                fallbackAppender.ActivateOptions();
                appender = fallbackAppender;
            }

            var repo = (Hierarchy)log4net.LogManager.GetRepository();
            var root = repo.Root;

            root.AddAppender(appender);

            repo.Configured = true;

            log.Info("Verbose logging to console enabled.");
        }
예제 #7
0
 public void Init()
 {
     // Add a Console appender so logger messages will show up in the NUnit Console.Out tab.
     log4net.Appender.ConsoleAppender appender       = new log4net.Appender.ConsoleAppender();
     log4net.Layout.ILayout           fallbackLayout = new log4net.Layout.PatternLayout("%m%n");
     appender.Layout = fallbackLayout;
     log4net.Config.BasicConfigurator.Configure(appender);
 }
예제 #8
0
        /// <summary>
        /// Configures the logging object to use a console logger. This would normally be used
        /// as a fallback when either the application does not have any logging configuration
        /// or there is an error in it.
        /// </summary>
        public static void ConfigureConsoleLogger()
        {
            log4net.Appender.ConsoleAppender appender = new log4net.Appender.ConsoleAppender();

            log4net.Layout.ILayout fallbackLayout = new log4net.Layout.PatternLayout("%m%n");
            appender.Layout = fallbackLayout;
            log4net.Config.BasicConfigurator.Configure(appender);
        }
        public void GetLinkingMetadata_CalledOnceForEachEvent()
        {
            // Arrange
            LogManager.ShutdownRepository(Assembly.GetEntryAssembly());

            var testAgent = Mock.Create <IAgent>();

            Mock.Arrange(() => testAgent.GetLinkingMetadata()).Returns(new Dictionary <string, string>()
            {
                { "key", "value" }
            });

            var testAppender = new NewRelicAppender(() => testAgent);

            //Set the the NewRelicAppender at the root logger
            var logRepository = LogManager.GetRepository(Assembly.GetEntryAssembly());

            BasicConfigurator.Configure(logRepository, testAppender);

            var layout = Mock.Create <log4net.Layout.SimpleLayout>();

            layout.ActivateOptions();

            var childAppender = new log4net.Appender.ConsoleAppender
            {
                Layout = layout
            };

            testAppender.AddAppender(childAppender);

            var testLoggingEvents = new List <LoggingEvent>();

            Mock.Arrange(() => layout.Format(Arg.IsAny <TextWriter>(), Arg.IsAny <LoggingEvent>())).DoInstead((TextWriter textWriter, LoggingEvent loggingEvent) =>
            {
                testLoggingEvents.Add(loggingEvent);
            });

            var testLogger = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

            //// Act
            var rnd = new Random();
            var countLogAttempts = rnd.Next(2, 25);

            for (var i = 0; i < countLogAttempts; i++)
            {
                testLogger.Info("This is a log message");
            }

            // Assert
            Mock.Assert(() => testAgent.GetLinkingMetadata(), Occurs.Exactly(countLogAttempts));
            Assert.That(testLoggingEvents.Count, Is.EqualTo(countLogAttempts));
            testLoggingEvents.ForEach(loggingEvent =>
            {
                Assert.That(loggingEvent.Properties.Contains("newrelic.linkingmetadata"), "newrelic.linkingmetadata not property found. This test expects newrelic.linkingmetadata property in log event");
            });
        }
예제 #10
0
 static Log()
 {
     NativeMethods.AllocConsole();
     log4net.Layout.PatternLayout     pl = new log4net.Layout.PatternLayout("[MySite] %level %date{HH:mm:ss,fff} - %message%n");
     log4net.Appender.ConsoleAppender ca = new log4net.Appender.ConsoleAppender();
     ca.Layout = pl;
     ca.Target = "Console.Out";
     ca.ActivateOptions();
     log4net.Config.BasicConfigurator.Configure(ca);
     log = LogManager.GetLogger("Debug");
 }
예제 #11
0
        public void Init()
        {
            appender = new log4net.Appender.ConsoleAppender();
            appender.Layout = new log4net.Layout.SimpleLayout();
            appender.Threshold = log4net.Core.Level.All;
            log4net.Config.BasicConfigurator.Configure(appender);

            // TODO: dat do konfigurace aby to nebylo natvrdo
            //System.Configuration.ConfigurationManager.AppSettings["databaseConn"] = "Data Source=CC_TEST;User ID=crmws;Password=crmws;";
            Console.WriteLine("acctId");
        }
예제 #12
0
        static void SetupConsoleLogging()
        {
            var rootLogger      = ((log4net.Repository.Hierarchy.Hierarchy)log4net.LogManager.GetRepository()).Root;
            var consoleAppender = new log4net.Appender.ConsoleAppender
            {
                Threshold = log4net.Core.Level.Debug,
                Layout    = new log4net.Layout.PatternLayout("%date [%thread] %-5level %logger [%property{NDC}] - %message%newline")
            };

            consoleAppender.ActivateOptions();
            rootLogger.AddAppender(consoleAppender);
        }
예제 #13
0
        private static log4net.Appender.ConsoleAppender GetConsoleAppender(
            log4net.Core.Level consoleLogLevel)
        {
            log4net.Appender.ConsoleAppender appender = new log4net.Appender.ConsoleAppender();
            appender.Name   = "Console";
            appender.Layout = new log4net.Layout.PatternLayout(
                "%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c - %m%n");
            appender.Threshold = consoleLogLevel;
            appender.ActivateOptions();

            return(appender);
        }
예제 #14
0
        /// <summary>
        /// add console appender
        /// </summary>
        /// <param name="patternStr"></param>
        public static void AddConsoleLogger(String patternStr)
        {
            if (String.IsNullOrEmpty(patternStr))
            {
                patternStr = "%message%newline";
            }

            log4net.Layout.PatternLayout     layout   = new log4net.Layout.PatternLayout(patternStr);
            log4net.Appender.ConsoleAppender appender = new log4net.Appender.ConsoleAppender();

            appender.Layout = layout;
            m_Appenders.Add(appender);
        }
예제 #15
0
        private static void ConfigureLog4Net()
        {
            var hierarchy = (Hierarchy)log4net.LogManager.GetRepository(typeof(TestsContext).Assembly);

            var consoleAppender = new log4net.Appender.ConsoleAppender
            {
                Layout = new log4net.Layout.PatternLayout("%d{ABSOLUTE} %-5p %c{1}:%L - %m%n"),
            };

            hierarchy.Root.Level = log4net.Core.Level.Info;
            hierarchy.Root.AddAppender(consoleAppender);
            hierarchy.Configured = true;
        }
예제 #16
0
파일: Logger.cs 프로젝트: zjbsean/TM
        /// <summary>
        /// 初始化日志
        /// </summary>
        /// <param name="file">日志文件</param>
        /// <param name="datePattern">日期格式</param>
        /// <param name="fileLevelStr">文件日志等级,有debug、info、warn、error和fatal</param>
        /// <param name="consoleLevelStr">Console日志等级</param>
        /// <returns>返回是否成功</returns>
        public bool Initialize(string file, string datePattern, string fileLevelStr, string consoleLevelStr)
        {
            log4net.Core.Level fileLevel    = ConvertLog4NetLevel(fileLevelStr);
            log4net.Core.Level consoleLevel = ConvertLog4NetLevel(consoleLevelStr);

            const string DefaultPattern = "%d [%t]%-5p %c - %m%n";

            try
            {
                log4net.Layout.PatternLayout layout = new log4net.Layout.PatternLayout(DefaultPattern);
                if (file != string.Empty)
                {
                    log4net.Appender.RollingFileAppender rfileAppender = new log4net.Appender.RollingFileAppender();
                    rfileAppender.Layout = layout;
                    rfileAppender.File   = file;

                    if (datePattern == string.Empty)
                    {
                        rfileAppender.DatePattern = "yyyyMMdd-HH";
                    }
                    else
                    {
                        rfileAppender.DatePattern = datePattern;
                    }
                    rfileAppender.RollingStyle = log4net.Appender.RollingFileAppender.RollingMode.Date; //.Composite;
                    rfileAppender.Threshold    = fileLevel;
                    rfileAppender.ActivateOptions();
                    log4net.Config.BasicConfigurator.Configure(rfileAppender);
                }

                log4net.Appender.ConsoleAppender consoleAppender = new log4net.Appender.ConsoleAppender(layout);
                consoleAppender.Threshold = consoleLevel;
                consoleAppender.ActivateOptions();
                log4net.Config.BasicConfigurator.Configure(consoleAppender);
                return(true);
            }
            catch (Exception err)
            {
                Console.WriteLine("Error:{0} StackTrace:{1}", err.Message, err.StackTrace);
                try
                {
                    HTEventLog.InitFileLog(@"ServerEvents.log");
                    HTEventLog.SaveLog(HTEventLog.LogTypeEnum.错误, string.Format("Error : {0}\r\nStackTrace : \r\n{1}", err.Message, err.StackTrace), System.Windows.Forms.Application.ProductName);
                }
                catch
                {
                }
                return(false);
            }
        }
예제 #17
0
        static Logger()
        {
            Log = LogManager.GetLogger(System.Reflection.Assembly.GetExecutingAssembly().FullName);

            // If error level reporting isn't enabled we assume no logger is configured and initialize a default
            // ConsoleAppender
            if (!Log.Logger.IsEnabledFor(log4net.Core.Level.Error))
            {
                log4net.Appender.ConsoleAppender appender = new log4net.Appender.ConsoleAppender();
                appender.Layout = new log4net.Layout.PatternLayout("%timestamp [%thread] %-5level - %message%newline");
                BasicConfigurator.Configure(appender);

                Log.Info("No log configuration found, defaulting to console logging");
            }
        }
예제 #18
0
파일: Logger.cs 프로젝트: RavenB/gridsearch
        static Logger()
        {
            Log = LogManager.GetLogger(System.Reflection.Assembly.GetExecutingAssembly().FullName);

            // If error level reporting isn't enabled we assume no logger is configured and initialize a default
            // ConsoleAppender
            if (!Log.Logger.IsEnabledFor(log4net.Core.Level.Error))
            {
                log4net.Appender.ConsoleAppender appender = new log4net.Appender.ConsoleAppender();
                appender.Layout = new log4net.Layout.PatternLayout("%timestamp [%thread] %-5level - %message%newline");
                BasicConfigurator.Configure(appender);

                Log.Info("No log configuration found, defaulting to console logging");
            }
        }
예제 #19
0
        /// <summary>
        /// Initializes the logger
        /// </summary>
        private void SetupLogging()
        {
            if (ConfigurationManager.GetSection("log4net") == null)
            {
                log4net.Appender.ConsoleAppender appender = new log4net.Appender.ConsoleAppender();
                appender.Name   = "ConsoleAppender";
                appender.Layout = new log4net.Layout.PatternLayout("[%date{dd.MM.yyyy HH:mm:ss,fff}]-%-5level-%t-[%c]: %message%newline");
                log4net.Config.BasicConfigurator.Configure(appender);
            }
            else
            {
                log4net.Config.XmlConfigurator.Configure((XmlElement)ConfigurationManager.GetSection("log4net"));
            }

            _logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
        }
예제 #20
0
        static void ConfigureLogging(bool verbose)
        {
            var consoleAppender = new log4net.Appender.ConsoleAppender();
            consoleAppender.Layout = new log4net.Layout.PatternLayout("[%date{yyyy-MM-dd HH:mm:ss}] %-5p %c{1} - %m%n");

            if (!verbose) {
                var filter = new LoggerMatchFilter();
                filter.AcceptOnMatch = true;
                filter.LoggerToMatch = typeof(Program).ToString();
                consoleAppender.AddFilter(filter);

                consoleAppender.AddFilter(new DenyAllFilter());
            }

            log4net.Config.BasicConfigurator.Configure(consoleAppender);
        }
예제 #21
0
        protected virtual void Application_Start(Object sender, EventArgs e)
        {
            // perform automapper configuration
            Banking.ConfigureAutomapper ();

            // setup loggin
            log4net.Appender.ConsoleAppender appender;
            appender = new log4net.Appender.ConsoleAppender ();
            appender.Layout = new log4net.Layout.PatternLayout ("%-4timestamp %-5level %logger %M %ndc - %message%newline");
            log4net.Config.BasicConfigurator.Configure (appender);
            if (ConfigurationManager.AppSettings ["Debug"] != null
                && ConfigurationManager.AppSettings ["Debug"] == "true")
                appender.Threshold = log4net.Core.Level.Debug;
            else
                appender.Threshold = log4net.Core.Level.Warn;
        }
예제 #22
0
파일: Logger.cs 프로젝트: RavenB/gridsearch
        /// <summary>
        /// Default constructor
        /// </summary>
        static Logger()
        {
            LogInstance = LogManager.GetLogger("libsecondlife");

            // If error level reporting isn't enabled we assume no logger is configured and initialize a default
            // ConsoleAppender
            if (!LogInstance.Logger.IsEnabledFor(log4net.Core.Level.Error))
            {
                log4net.Appender.ConsoleAppender appender = new log4net.Appender.ConsoleAppender();
                appender.Layout = new log4net.Layout.PatternLayout("%timestamp [%thread] %-5level - %message%newline");
                BasicConfigurator.Configure(appender);

                if(Settings.LOG_LEVEL != Helpers.LogLevel.None)
                    LogInstance.Info("No log configuration found, defaulting to console logging");
            }
        }
예제 #23
0
        /// <summary>
        /// Executes the report generation.
        /// </summary>
        /// <param name="configuration">The configuration.</param>
        /// <returns><c>true</c> if report was generated successfully; otherwise <c>false</c>.</returns>
        public static bool Execute(ReportConfiguration configuration)
        {
            if (configuration == null)
            {
                throw new ArgumentNullException("configuration");
            }

            var appender = new log4net.Appender.ConsoleAppender();

            appender.Layout = new log4net.Layout.PatternLayout("%message%newline");
            log4net.Config.BasicConfigurator.Configure(appender);

            if (!configuration.Validate())
            {
                return(false);
            }

            if (configuration.VerbosityLevel == VerbosityLevel.Info)
            {
                appender.Threshold = log4net.Core.Level.Info;
            }
            else if (configuration.VerbosityLevel == VerbosityLevel.Error)
            {
                appender.Threshold = log4net.Core.Level.Error;
            }

            var stopWatch = new System.Diagnostics.Stopwatch();

            stopWatch.Start();

            var parser = ParserFactory.CreateParser(configuration.ReportFiles, configuration.SourceDirectories);

            using (var rendererFactory = new RendererFactory(configuration.ReportType))
            {
                new ReportBuilder(
                    parser,
                    rendererFactory,
                    configuration.TargetDirectory,
                    new DefaultAssemblyFilter(configuration.Filters))
                .CreateReport();
            }

            stopWatch.Stop();
            Logger.InfoFormat(Resources.ReportGenerationTook, stopWatch.ElapsedMilliseconds / 1000);

            return(true);
        }
예제 #24
0
파일: Log.cs 프로젝트: bpatra/sandbox
 public static void AddLogToConsole(bool basicConfig)
 {
     AllocConsole();
     var appender = new log4net.Appender.ConsoleAppender();
     var layout = new log4net.Layout.PatternLayout
     {
         ConversionPattern = DefaultConversionPatern,
         Header = "Time;Level;Description;"
     };
     layout.ActivateOptions();
     appender.Layout = layout;
     appender.ActivateOptions();
     if (basicConfig)
         log4net.Config.BasicConfigurator.Configure(appender);
     else
         ((log4net.Repository.Hierarchy.Hierarchy)LogManager.GetRepository()).Root.AddAppender(appender);
 }
예제 #25
0
        private static void ConfigureLog4Net()
        {
            var hierarchy = (Hierarchy)log4net.LogManager.GetRepository(typeof(TestsContext).Assembly);

            var consoleAppender = new log4net.Appender.ConsoleAppender
            {
                Layout = new log4net.Layout.PatternLayout("%d{ABSOLUTE} %-5p %c{1}:%L - %m%n"),
            };

            ((Logger)hierarchy.GetLogger("NHibernate.Hql.Ast.ANTLR")).Level             = log4net.Core.Level.Off;
            ((Logger)hierarchy.GetLogger("NHibernate.SQL")).Level                       = log4net.Core.Level.Off;
            ((Logger)hierarchy.GetLogger("NHibernate.AdoNet.AbstractBatcher")).Level    = log4net.Core.Level.Off;
            ((Logger)hierarchy.GetLogger("NHibernate.Tool.hbm2ddl.SchemaExport")).Level = log4net.Core.Level.Error;
            hierarchy.Root.Level = log4net.Core.Level.Warn;
            hierarchy.Root.AddAppender(consoleAppender);
            hierarchy.Configured = true;
        }
예제 #26
0
        private static void EnableLogging()
        {
            // DEBUG < INFO < WARN < ERROR < FATAL
            log4net.Appender.ConsoleAppender consoleAppender = FindAppender("ConsoleAppender") as log4net.Appender.ConsoleAppender;
            #if DEBUG
            consoleAppender.Threshold = log4net.Core.Level.All;
            #else
            consoleAppender.Threshold = log4net.Core.Level.Off;
            #endif

            log4net.Appender.FileAppender fileAppender = FindAppender("LogFileAppender") as log4net.Appender.FileAppender;
            #if TRACE
            fileAppender.Threshold = log4net.Core.Level.All;
            #else
            fileAppender.Threshold = log4net.Core.Level.Off;
            #endif
        }
        public void GetLinkingMetadata_IsHandled_Exception()
        {
            // Arrange
            LogManager.ShutdownRepository(Assembly.GetEntryAssembly());

            var testAgent = Mock.Create <IAgent>();

            Mock.Arrange(() => testAgent.GetLinkingMetadata()).DoInstead(() =>
            {
                throw new Exception("Exception - GetLinkingMetadata");
            });

            var testAppender = new NewRelicAppender(() => testAgent);


            //Set the the NewRelicAppender at the root logger
            var logRepository = LogManager.GetRepository(Assembly.GetEntryAssembly());

            BasicConfigurator.Configure(logRepository, testAppender);

            var testLogger = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

            var layout        = Mock.Create <log4net.Layout.SimpleLayout>();
            var childAppender = new log4net.Appender.ConsoleAppender
            {
                Layout = layout
            };

            testAppender.AddAppender(childAppender);

            var testLoggingEvents = new List <LoggingEvent>();

            Mock.Arrange(() => layout.Format(Arg.IsAny <TextWriter>(), Arg.IsAny <LoggingEvent>())).DoInstead((TextWriter textWriter, LoggingEvent loggingEvent) =>
            {
                testLoggingEvents.Add(loggingEvent);
            });

            // Act

            testLogger.Info("This is log message ");

            // Assert
            Assert.That(testLoggingEvents.Count, Is.EqualTo(1));
            Assert.That(!testLoggingEvents[0].Properties.Contains("newrelic.linkingmetadata"), "newrelic.linkingmetadata property found. This test does not expect newrelic.linkingmetadata property in log event");
        }
예제 #28
0
        /// <summary>
        /// Executes the report generation.
        /// </summary>
        /// <param name="configuration">The configuration.</param>
        /// <returns><c>true</c> if report was generated successfully; otherwise <c>false</c>.</returns>
        public static bool Execute(ReportConfiguration configuration)
        {
            if (configuration == null)
            {
                throw new ArgumentNullException("configuration");
            }

            var appender = new log4net.Appender.ConsoleAppender();
            appender.Layout = new log4net.Layout.PatternLayout("%message%newline");
            log4net.Config.BasicConfigurator.Configure(appender);

            if (!configuration.Validate())
            {
                return false;
            }

            if (configuration.VerbosityLevel == VerbosityLevel.Info)
            {
                appender.Threshold = log4net.Core.Level.Info;
            }
            else if (configuration.VerbosityLevel == VerbosityLevel.Error)
            {
                appender.Threshold = log4net.Core.Level.Error;
            }

            var stopWatch = new System.Diagnostics.Stopwatch();
            stopWatch.Start();

            var parser = ParserFactory.CreateParser(configuration.ReportFiles, configuration.SourceDirectories);

            using (var rendererFactory = new RendererFactory(configuration.ReportType))
            {
                new ReportBuilder(
                    parser,
                    rendererFactory,
                    configuration.TargetDirectory,
                    new DefaultAssemblyFilter(configuration.Filters))
                        .CreateReport();
            }

            stopWatch.Stop();
            Logger.InfoFormat(Resources.ReportGenerationTook, stopWatch.ElapsedMilliseconds / 1000);

            return true;
        }
예제 #29
0
파일: Logger.cs 프로젝트: hibecki/workb
        /// <summary>
        /// Default constructor
        /// </summary>
        static Logger()
        {
            LogInstance = LogManager.GetLogger("OpenMetaverse");

            // If error level reporting isn't enabled we assume no logger is configured and initialize a default
            // ConsoleAppender
            if (!LogInstance.Logger.IsEnabledFor(log4net.Core.Level.Error))
            {
                log4net.Appender.ConsoleAppender appender = new log4net.Appender.ConsoleAppender();
                appender.Layout = new log4net.Layout.PatternLayout("%timestamp [%thread] %-5level - %message%newline");
                BasicConfigurator.Configure(appender);

                if (Settings.LOG_LEVEL != Helpers.LogLevel.None)
                {
                    LogInstance.Info("No log configuration found, defaulting to console logging");
                }
            }
        }
예제 #30
0
        static void ConfigureLogging(bool verbose)
        {
            var consoleAppender = new log4net.Appender.ConsoleAppender();

            consoleAppender.Layout = new log4net.Layout.PatternLayout("[%date{yyyy-MM-dd HH:mm:ss}] %-5p %c{1} - %m%n");

            if (!verbose)
            {
                var filter = new LoggerMatchFilter();
                filter.AcceptOnMatch = true;
                filter.LoggerToMatch = typeof(Program).ToString();
                consoleAppender.AddFilter(filter);

                consoleAppender.AddFilter(new DenyAllFilter());
            }

            log4net.Config.BasicConfigurator.Configure(consoleAppender);
        }
예제 #31
0
        private static void ConfigureLogging()
        {
            var repository      = LogManager.GetRepository(Assembly.GetEntryAssembly());
            var consoleAppender = new log4net.Appender.ConsoleAppender()
            {
                Layout = new log4net.Layout.SimpleLayout(),
            };

            var enablingFilter = new log4net.Filter.LoggerMatchFilter()
            {
                LoggerToMatch = nameof(Muwesome),
                AcceptOnMatch = true,
            };

            consoleAppender.AddFilter(enablingFilter);
            consoleAppender.AddFilter(new log4net.Filter.DenyAllFilter());

            log4net.Config.BasicConfigurator.Configure(repository, consoleAppender);
        }
예제 #32
0
        /// <summary>
        /// Configure log4net object
        /// </summary>
        private static void ConfigLog4Net()
        {
            // set log filename
            string logfilename = Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);

            logfilename += System.IO.Path.DirectorySeparatorChar;
            logfilename += System.Reflection.Assembly.GetExecutingAssembly().GetName().Name + ".log";

            LogFilePath = logfilename;

            // attach to repository hierarchy
            log4net.Repository.Hierarchy.Hierarchy repository = LogManager.GetRepository() as log4net.Repository.Hierarchy.Hierarchy;

            // check for logging into file
            if (LogToFile)
            {
                // add log file appender
                log4net.Appender.RollingFileAppender fileappender = new log4net.Appender.RollingFileAppender();
                fileappender.Layout             = new log4net.Layout.PatternLayout("%-5level %date{yyyy-MM-dd HH:mm:ss,fff} [%thread] %message (%file:%line)%newline");
                fileappender.File               = logfilename;
                fileappender.MaxSizeRollBackups = 10;
                fileappender.MaximumFileSize    = "10MB";
                fileappender.AppendToFile       = true;
                fileappender.ActivateOptions();
                repository.Root.AddAppender(fileappender);
            }

            // check for logging into console
            if (LogToConsole)
            {
                // add console appender
                log4net.Appender.ConsoleAppender consoleappender = new log4net.Appender.ConsoleAppender();
                consoleappender.Layout = new log4net.Layout.PatternLayout("%-5level %date{HH:mm:ss} %message%newline");
                consoleappender.ActivateOptions();
                repository.Root.AddAppender(consoleappender);
            }

            // set to log all events
            repository.Root.Level = log4net.Core.Level.All;
            repository.Configured = true;
            repository.RaiseConfigurationChanged(EventArgs.Empty);
        }
예제 #33
0
        protected virtual void Application_Start(Object sender, EventArgs e)
        {
            // perform automapper configuration
            Banking.ConfigureAutomapper();

            // setup loggin
            log4net.Appender.ConsoleAppender appender;
            appender        = new log4net.Appender.ConsoleAppender();
            appender.Layout = new log4net.Layout.PatternLayout("%-4timestamp %-5level %logger %M %ndc - %message%newline");
            log4net.Config.BasicConfigurator.Configure(appender);
            if (ConfigurationManager.AppSettings ["Debug"] != null &&
                ConfigurationManager.AppSettings ["Debug"] == "true")
            {
                appender.Threshold = log4net.Core.Level.Debug;
            }
            else
            {
                appender.Threshold = log4net.Core.Level.Warn;
            }
        }
 public Log4NetLogger(string modName)
 {
     moduleName = modName;
     // logger = log4net.LogManager.GetLogger(modName);
     lock (lockObject) {
         if (logger == null) {
             // logger = log4net.LogManager.GetLogger(LookingGlassBase.ApplicationName);
             logger = log4net.LogManager.GetLogger(moduleName);
             // logger = log4net.LogManager.GetLogger(Assembly.GetExecutingAssembly().FullName);
             // logger = log4net.LogManager.GetLogger(ModuleName);
             // If error level reporting isn't enabled we assume no logger is configured
             // and initialize a default ConsoleAppender
             if (!logger.IsErrorEnabled) {
                 log4net.Appender.ConsoleAppender appender = new log4net.Appender.ConsoleAppender();
                 appender.Layout = new log4net.Layout.PatternLayout("%timestamp[%thread]: %message%newline");
                 BasicConfigurator.Configure(appender);
             }
         }
     }
 }
예제 #35
0
        public static void Main(string[] args)
        {
            var appender = new log4net.Appender.ConsoleAppender();
            appender.Layout = new log4net.Layout.SimpleLayout();
            appender.AddFilter(new log4net.Filter.LevelRangeFilter { LevelMin = log4net.Core.Level.Info });
            log4net.Config.BasicConfigurator.Configure(appender);

            using (var connection = new MyConnection(new[] { "uri_0", "uri_1" }))
            {
                connection.Open();

                Console.WriteLine("Press enter to subscribe data and press again to exit.");
                Console.ReadLine();

                connection.Subscribe(new TestSubscriber("A"));
                connection.Subscribe(new TestSubscriber("B"));

                Console.ReadLine();
            }
        }
예제 #36
0
        public static void AddLogToConsole(bool basicConfig)
        {
            AllocConsole();
            var appender = new log4net.Appender.ConsoleAppender();
            var layout   = new log4net.Layout.PatternLayout
            {
                ConversionPattern = DefaultConversionPatern,
                Header            = "Time;Level;Description;"
            };

            layout.ActivateOptions();
            appender.Layout = layout;
            appender.ActivateOptions();
            if (basicConfig)
            {
                log4net.Config.BasicConfigurator.Configure(appender);
            }
            else
            {
                ((log4net.Repository.Hierarchy.Hierarchy)LogManager.GetRepository()).Root.AddAppender(appender);
            }
        }
 public Log4NetLogger(string modName)
 {
     moduleName = modName;
     // logger = log4net.LogManager.GetLogger(modName);
     lock (lockObject) {
         if (logger == null)
         {
             // logger = log4net.LogManager.GetLogger(LookingGlassBase.ApplicationName);
             logger = log4net.LogManager.GetLogger(moduleName);
             // logger = log4net.LogManager.GetLogger(Assembly.GetExecutingAssembly().FullName);
             // logger = log4net.LogManager.GetLogger(ModuleName);
             // If error level reporting isn't enabled we assume no logger is configured
             // and initialize a default ConsoleAppender
             if (!logger.IsErrorEnabled)
             {
                 log4net.Appender.ConsoleAppender appender = new log4net.Appender.ConsoleAppender();
                 appender.Layout = new log4net.Layout.PatternLayout("%timestamp[%thread]: %message%newline");
                 BasicConfigurator.Configure(appender);
             }
         }
     }
 }
예제 #38
0
파일: Logging.cs 프로젝트: LHCGreg/DFOCP
        private static void SetUpConsoleLogger()
        {
            string consolePattern = "%message%newline";

            log4net.Layout.PatternLayout layout = new log4net.Layout.PatternLayout(consolePattern);
            layout.Header = "";
            layout.Footer = "";
            layout.ActivateOptions();

            log4net.Appender.ConsoleAppender consoleAppender = new log4net.Appender.ConsoleAppender();
            //consoleAppender.ErrorHandler = new LoggingErrorHandler();
            consoleAppender.Name      = "Console appender";
            consoleAppender.Threshold = log4net.Core.Level.Warn;
            consoleAppender.Layout    = layout;
            consoleAppender.Target    = "Console.Out";

            consoleAppender.ActivateOptions();

            // A slight bit of hackery in order to programatically set more than one appender (which isn't supported by BasicConfigurator)
            log4net.Repository.Hierarchy.Logger root = ((log4net.Repository.Hierarchy.Hierarchy)log4net.LogManager.GetRepository()).Root;
            root.AddAppender(consoleAppender);
            root.Repository.Configured = true;
        }
예제 #39
0
        public static void Main(string[] args)
        {
            var appender = new log4net.Appender.ConsoleAppender();

            appender.Layout = new log4net.Layout.SimpleLayout();
            appender.AddFilter(new log4net.Filter.LevelRangeFilter {
                LevelMin = log4net.Core.Level.Info
            });
            log4net.Config.BasicConfigurator.Configure(appender);

            using (var connection = new MyConnection(new[] { "uri_0", "uri_1" }))
            {
                connection.Open();

                Console.WriteLine("Press enter to subscribe data and press again to exit.");
                Console.ReadLine();

                connection.Subscribe(new TestSubscriber("A"));
                connection.Subscribe(new TestSubscriber("B"));

                Console.ReadLine();
            }
        }
예제 #40
0
        public override void Configure(string key, ILoggerRepository repository)
        {
            foreach (var level in Levels)
            {
                var appender = new log4net.Appender.ConsoleAppender();

                var layout = new PatternLayout(Pattern);
                layout.ActivateOptions();

                appender.Layout = layout;
                appender.Name   = key + "_" + level.ToString().ToLower();

                var filter = new LevelRangeFilter();
                filter.LevelMax = level;
                filter.LevelMin = level;
                filter.ActivateOptions();
                appender.AddFilter(filter);

                appender.ActivateOptions();

                BasicConfigurator.Configure(repository, appender);
            }
        }
예제 #41
0
        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");
            }
        }
예제 #42
0
파일: Logging.cs 프로젝트: TeoTwawki/DFOCP
        private static void SetUpConsoleLogger()
        {
            string consolePattern = "%message%newline";
            log4net.Layout.PatternLayout layout = new log4net.Layout.PatternLayout( consolePattern );
            layout.Header = "";
            layout.Footer = "";
            layout.ActivateOptions();

            log4net.Appender.ConsoleAppender consoleAppender = new log4net.Appender.ConsoleAppender();
            //consoleAppender.ErrorHandler = new LoggingErrorHandler();
            consoleAppender.Name = "Console appender";
            consoleAppender.Threshold = log4net.Core.Level.Warn;
            consoleAppender.Layout = layout;
            consoleAppender.Target = "Console.Out";

            consoleAppender.ActivateOptions();

            // A slight bit of hackery in order to programatically set more than one appender (which isn't supported by BasicConfigurator)
            log4net.Repository.Hierarchy.Logger root = ( (log4net.Repository.Hierarchy.Hierarchy)log4net.LogManager.GetRepository() ).Root;
            root.AddAppender( consoleAppender );
            root.Repository.Configured = true;
        }
        /// <summary>
        /// The main method.
        /// </summary>
        /// <param name="args">The arguments.</param>
        /// <returns>Return code indicating success/failure.</returns>
        internal static int Main(string[] args)
        {
            var appender = new log4net.Appender.ConsoleAppender();
            appender.Layout = new log4net.Layout.PatternLayout("%message%newline");
            log4net.Config.BasicConfigurator.Configure(appender);

            if (args.Length < 2 || args.Length > 3)
            {
                ShowHelp();
                return 1;
            }

            var reportFiles = args[0].Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
            var targetDirectory = args[1];
            var reportType = ReportType.Html;

            if (args.Length > 2 && !Enum.TryParse<ReportType>(args[2], true, out reportType))
            {
                logger.Error("Unknown ReportType.");
                return 1;
            }

            // Check whether report exists
            if (!reportFiles.Any())
            {
                logger.Error("No report files specified.");
                return 1;
            }

            foreach (var file in reportFiles)
            {
                if (!File.Exists(file))
                {
                    logger.ErrorFormat("The report file '{0}' does not exist.", file);
                    return 1;
                }
            }

            // Create target directory
            if (!Directory.Exists(targetDirectory))
            {
                try
                {
                    Directory.CreateDirectory(targetDirectory);
                }
                catch (Exception ex)
                {
                    logger.ErrorFormat("The target directory '{0}' could not be created: {1}", targetDirectory, ex.Message);
                    return 1;
                }
            }

            var stopWatch = new System.Diagnostics.Stopwatch();
            stopWatch.Start();

            // Initiate parser
            var parser = ParserFactory.CreateParser(reportFiles);

            if (parser == null)
            {
                logger.Error("No matching parser found.");
                stopWatch.Stop();
                return 1;
            }

            new ReportBuilder(parser, new RendererFactory(reportType), targetDirectory).CreateReport();

            stopWatch.Stop();
            logger.InfoFormat("Report generation took {0} seconds", stopWatch.ElapsedMilliseconds / 1000);

            return 0;
        }
예제 #44
0
 public static void ConfigureForConsoleDebug()
 {
     log4net.Appender.ConsoleAppender appender = new log4net.Appender.ConsoleAppender();
     appender.Layout = new log4net.Layout.PatternLayout(LAYOUTFORMAT);
     log4net.Config.BasicConfigurator.Configure(appender);
 }
 public void Init()
 {
     // Add a Console appender so logger messages will show up in the NUnit Console.Out tab.
     log4net.Appender.ConsoleAppender appender = new log4net.Appender.ConsoleAppender();
     log4net.Layout.ILayout fallbackLayout = new log4net.Layout.PatternLayout("%m%n");
     appender.Layout = fallbackLayout;
     log4net.Config.BasicConfigurator.Configure(appender);
 }
예제 #46
0
        /// <summary>
        /// Application's Entry Point.
        /// </summary>
        /// <param name="args">See usage (--help).</param>
        protected static void Main(string[] args)
        {
            /* configure loggging */
            var consoleAppender = new log4net.Appender.ConsoleAppender { Layout = new log4net.Layout.SimpleLayout() };
            log4net.Config.BasicConfigurator.Configure(consoleAppender);
            var rootLogger = ((Hierarchy)LogManager.GetRepository()).Root;
            rootLogger.Level = Level.Info;

            consoleLog = LogManager.GetLogger("ConradRelayCardUtil");

            /* parse RuntimeOptions */
            if (!Parser.Default.ParseArguments(args, RuntimeOptions))
            {
                return;
            }

            if (RuntimeOptions.OptionDebug)
            {
                rootLogger.Level = Level.Debug;
            }

            /* create card instance and initialize with serial port from RuntimeOptions*/
            consoleLog.DebugFormat("Setting card port to {0}", RuntimeOptions.SerialPortName);
            conradCard = new Conrad8RelayCard(RuntimeOptions.SerialPortName);

            /* init card if not DoNotInit*/
            if (!RuntimeOptions.OptionDoNotInit)
            {
                try
                {
                    consoleLog.Debug("Initializing card(s)");
                    var numberOfCards = conradCard.InitializeCard();
                    consoleLog.InfoFormat("Found ({0}) card(s)", numberOfCards);
                }
                catch (Exception ex)
                {
                    consoleLog.Error("Could not initialize card(s)", ex);
                    return;
                }
            }
            else
            {
                consoleLog.Debug("Option 'DoNotInit'has been set, card not initialized");
            }

            switch (RuntimeOptions.CommandOption)
            {
                case CommandOption.Getport:
                    GetPort();
                    break;

                case CommandOption.Setport:
                    SetPort();
                    break;
                case CommandOption.HardwareTest:
                    HardwareTest();
                    break;
                case CommandOption.SetSingle:
                    SetSingle();
                    break;
                case CommandOption.DelSingle:
                    DelSingle();
                    break;
                case CommandOption.Toggle:
                    Toggle();
                    break;
                default:
                    Console.WriteLine("Invalid command or not implemented.");
                    break;
            }
        }
예제 #47
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
            }
        }
예제 #48
0
        /// <summary>
        /// add console appender
        /// </summary>
        /// <param name="patternStr"></param>
        public static void AddConsoleLogger(String patternStr)
        {
            if (String.IsNullOrEmpty(patternStr))
                patternStr = "%message%newline";

            log4net.Layout.PatternLayout layout = new log4net.Layout.PatternLayout(patternStr);
            log4net.Appender.ConsoleAppender appender = new log4net.Appender.ConsoleAppender();

            appender.Layout = layout;
            m_Appenders.Add(appender);
        }
        public void SuccessfulProcessTest1()
        {
            // Arrange
            var container = new UnityContainer();

            var appender = new log4net.Appender.ConsoleAppender { Layout = new log4net.Layout.SimpleLayout() };
            log4net.Config.BasicConfigurator.Configure(appender);

            var logger = LogManager.GetLogger(typeof(IncomingTransactionProcessorTests));

            container.RegisterInstance(logger);

            var sessionId = Guid.NewGuid();

            var mockService = new Mock<IClientService>(MockBehavior.Strict);
            mockService.Setup(s => s.GetLastProcessedTransactionId(sessionId)).Returns(default(string));
            container.RegisterInstance(mockService.Object);

            var mockRpcClient = new Mock<IRpcClient>(MockBehavior.Strict);

            var transactions = new List<Transaction>
                {
                    new Transaction
                        {
                            Account = "100",
                            Address = "address",
                            Amount = 50m,
                            Category = "receive",
                            Confirmations = 1,
                            Time = DateTime.UtcNow.AddMinutes(-11),
                            TransactionId = "1000"
                        },
                    new Transaction
                        {
                            Account = "101",
                            Address = "address",
                            Amount = 75m,
                            Category = "receive",
                            Confirmations = 1,
                            Time = DateTime.UtcNow.AddMinutes(-10),
                            TransactionId = "1001"
                        },
                };

            mockRpcClient.Setup(r => r.GetTransactions(null, 1000, 0)).Returns(transactions.Take(1).ToList());
            ////mockRpcClient.Setup(r => r.GetTransactions(null, 12, 0)).Returns(transactions.Take(2).ToList());
            ////mockRpcClient.Setup(r => r.GetTransactions(null, 14, 0)).Returns(transactions.Take(2).ToList());
            container.RegisterInstance(mockRpcClient.Object);

            var processor = new Mock<IncomingTransactionProcessor>() { CallBase = true };
            processor.Setup(p => p.Process(sessionId, It.IsAny<Transaction>()));
            container.BuildUp(processor.Object);

            // Act
            processor.Object.Process(sessionId);

            // Assert
            mockService.Verify(s => s.GetLastProcessedTransactionId(sessionId), Times.Once());
            mockRpcClient.Verify(r => r.GetTransactions(null, 1000, 0), Times.Once());
            ////mockRpcClient.Verify(r => r.GetTransactions(null, 12, 0), Times.Once());
            ////mockRpcClient.Verify(r => r.GetTransactions(null, 14, 0), Times.Once());
            processor.Verify(p => p.Process(sessionId, It.IsAny<Transaction>()), Times.Exactly(1));
        }
예제 #50
0
파일: Logger.cs 프로젝트: alienblog/ahcms
        private static log4net.Appender.ConsoleAppender GetConsoleAppender(
            log4net.Core.Level consoleLogLevel)
        {
            log4net.Appender.ConsoleAppender appender = new log4net.Appender.ConsoleAppender();
            appender.Name = "Console";
            appender.Layout = new log4net.Layout.PatternLayout(
                "%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c - %m%n");
            appender.Threshold = consoleLogLevel; 
            appender.ActivateOptions();

            return appender;
        }
예제 #51
0
 public static void ConfigureConsoleLogging()
 {
     log4net.Appender.ConsoleAppender appender = new log4net.Appender.ConsoleAppender();
       appender.Layout = new log4net.Layout.PatternLayout("%-5p %c{1} %m%n");
       log4net.Config.BasicConfigurator.Configure(appender);
 }
예제 #52
0
        /// <summary>
        /// Configure log4net object
        /// </summary>
        private static void ConfigLog4Net()
        {
            // set log filename
            string logfilename = Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);
            logfilename += System.IO.Path.DirectorySeparatorChar;
            logfilename += System.Reflection.Assembly.GetExecutingAssembly().GetName().Name + ".log";

            LogFilePath = logfilename;

            // attach to repository hierarchy
            log4net.Repository.Hierarchy.Hierarchy repository = LogManager.GetRepository() as log4net.Repository.Hierarchy.Hierarchy;

            // check for logging into file
            if (LogToFile)
            {
                // add log file appender
                log4net.Appender.RollingFileAppender fileappender = new log4net.Appender.RollingFileAppender();
                fileappender.Layout = new log4net.Layout.PatternLayout("%-5level %date{yyyy-MM-dd HH:mm:ss,fff} [%thread] %message (%file:%line)%newline");
                fileappender.File = logfilename;
                fileappender.MaxSizeRollBackups = 10;
                fileappender.MaximumFileSize = "10MB";
                fileappender.AppendToFile = true;
                fileappender.ActivateOptions();
                repository.Root.AddAppender(fileappender);
            }

            // check for logging into console
            if (LogToConsole)
            {
                // add console appender
                log4net.Appender.ConsoleAppender consoleappender = new log4net.Appender.ConsoleAppender();
                consoleappender.Layout = new log4net.Layout.PatternLayout("%-5level %date{HH:mm:ss} %message%newline");
                consoleappender.ActivateOptions();
                repository.Root.AddAppender(consoleappender);
            }

            // set to log all events
            repository.Root.Level = log4net.Core.Level.All;
            repository.Configured = true;
            repository.RaiseConfigurationChanged(EventArgs.Empty);
        }
예제 #53
0
파일: Main.cs 프로젝트: Dynalon/genbanking
        public static void Main(string[] args)
        {
            // set default options and parameter arguments
            string configfile = "";
            string account = "";
            string task = "";
            string provider = "";
            string gui = "";
            bool help = false;
            bool list = false;
            bool debug = false;

            var p = new OptionSet () {
                { "c=",	"configuration file to use. Default is provider.config in assembly directory",
                    v => configfile = v },
                { "g=", "gui to use, default is CGui (only for aqbanking)", v=> gui = v },
                { "v", "increase verbosity, usefull for debugging", v=> debug = true },
                { "p=", "provider to use, default is aqbanking", v => provider = v },
                { "a=", "AccountIdentifier/Number to use", v => account = v },
                { "t=",	"task that should be performed. Can be getbalance or gettransactions", v => task = v },
                { "l", "list all available accounts", v => list = v != null },
                { "h|?|help", "shows this help",  v => help = v != null },
            };

            try {
                // readin cmdline options
                p.Parse (args);
                if (help) {
                    p.WriteOptionDescriptions (Console.Out);
                    return;
                }

                // read in configuration or use default
                ProviderConfig conf;
                if (!string.IsNullOrEmpty (configfile))
                    conf = new ProviderConfig (configfile);
                else
                    conf = new ProviderConfig ();

                // setup logging
                log4net.Appender.ConsoleAppender appender;
                appender = new log4net.Appender.ConsoleAppender ();
                appender.Layout = new log4net.Layout.PatternLayout ("%-4timestamp %-5level %logger %M %ndc - %message%newline");
                log4net.Config.BasicConfigurator.Configure (appender);
                if (debug)
                    appender.Threshold = log4net.Core.Level.Debug;
                else
                    appender.Threshold = log4net.Core.Level.Warn;

                if (!string.IsNullOrEmpty (gui)) {
                    conf.Settings.Remove ("Gui");
                    conf.Settings.Add (new KeyValueConfigurationElement ("Gui", gui));
                }
                if (!string.IsNullOrEmpty (provider)) {
                    conf.Settings.Remove ("Provider");
                    conf.Settings.Add (new KeyValueConfigurationElement ("Provider", provider));
                }

                // init
                using (var banking = new BankingFactory().GetProvider(conf)) {

                    // output account overview
                    if (list) {
                        foreach (var acc in banking.Accounts)
                            acc.Print ();
                        return;
                    }
                    // account requests (Balance, Transactions)

                    // parameter sanitation
                    IBankAccount b;
                    if (string.IsNullOrEmpty (account)) {
                        b = banking.Accounts.First ();
                    } else
                        b = banking.GetAccountByIdentifier (account);

                    if (string.IsNullOrEmpty (task))
                        throw new Exception ("Task needed, specify via -t <task>");

                    switch (task) {
                    case "gettransactions":
                        List<ITransaction > l = banking.GetTransactions (b);
                        foreach (ITransaction t in l)
                            t.Print ();
                        return;
                    case "getbalance":
                        var bal = banking.GetBalance (b);
                        Console.WriteLine (bal);
                        return;
                    }
                }
            } catch (Exception e) {
                Console.WriteLine ("ERROR: " + e.Message);
                p.WriteOptionDescriptions (Console.Out);
                //throw e;
            }
            return;
        }
예제 #54
0
        //        private static void TestApamaLinux()
        //        {
        //            IDictionary<string, string> config = new Dictionary<string, string>();
        //            config.Add("gdb_exec", "/opt/gdb-7.2/bin/gdb");
        //            config.Add("gdb_log", "stream:stderr");
        //            
        //            //config.Add("target", "extended-remote :1234");
        //            
        //            config.Add("target", "run_local");
        //            
        //            //config.Add("target", "attach_local");
        //            //config.Add("target-options", "14577");
        //            
        //            //config.Add("file", "/home/andi/Documents/Uni/master-thesis/src/test_sources/gdb_reverse_debugging_test/gdb_reverse_debugging_test");
        //            config.Add("file", "/home/andi/hacklet/prog0-x64");
        //            
        //            using(ITargetConnector connector =
        //                GenericClassIdentifierFactory.CreateFromClassIdentifierOrType<ITargetConnector>("general/gdb"))
        //            {
        //                ISymbolTable symbolTable = (ISymbolTable)connector;
        //                
        //                connector.Setup(config);
        //                connector.Connect();
        //                
        //                ISymbolTableMethod main = symbolTable.FindMethod("main");
        //                IBreakpoint snapshotBreakpoint = connector.SetSoftwareBreakpoint(main, 0, "break_snapshot");
        //                IBreakpoint restoreBreakpoint = connector.SetSoftwareBreakpoint (0x4007b5, 0, "break_restore");
        //                
        ////				IFuzzDescription barVar1_Description = new SingleValueFuzzDescription(bar.Parameters[0], 
        ////					new RandomByteGenerator( 4, 4, RandomByteGenerator.ByteType.All));		
        ////				IFuzzDescription barVar1_readableChar = new PointerValueFuzzDescription(bar.Parameters[0],
        ////					new RandomByteGenerator(5, 1000, RandomByteGenerator.ByteType.PrintableASCIINullTerminated));
        //                
        //                connector.DebugContinue ();
        ////				Registers r = ((Fuzzer.TargetConnectors.GDB.GDBConnector)connector).GetRegisters();
        ////				using(FileStream fSink = new FileStream("/home/andi/x86-64.registers", FileMode.CreateNew, FileAccess.Write))
        ////				{
        ////					StreamHelper.WriteTypedStreamSerializable(r, fSink);
        ////				}
        //             	ISymbolTableVariable argv = main.Parameters[1];
        //                ISymbolTableVariable dereferencedArgv = argv.Dereference();
        //                
        //                DataGeneratorLogger datagenLogger = new DataGeneratorLogger("/home/andi/log");
        ////				IFuzzDescription fuzzArgv = new PointerValueFuzzDescription(
        ////					dereferencedArgv, new RandomByteGenerator(
        ////				                          100, 10000, RandomByteGenerator.ByteType.PrintableASCIINullTerminated));
        ////				IStackFrameInfo stackFrameInfo = connector.GetStackFrameInfo();
        //                
        ////				
        ////				FuzzController fuzzController = new FuzzController(
        ////					connector,
        ////					snapshotBreakpoint,
        ////					restoreBreakpoint,
        ////					new LoggerCollection(
        ////						new GDBLogger((GDBConnector)connector, "/home/andi/log"),
        ////						new StackFrameLogger(connector, "/home/andi/log"),
        ////						datagenLogger
        ////					),
        ////					fuzzArgv);
        ////					
        ////				fuzzController.Fuzz();
        //            }
        //            
        //
        //            
        //            Console.ReadLine();
        //            
        //        }
        /// <summary>
        /// Initializes the logger
        /// </summary>
        private static void SetupLogging()
        {
            log4net.Appender.FileAppender fileAppender = new log4net.Appender.FileAppender();
            fileAppender.Name = "FileAppender";
            //fileAppender.Writer = new StreamWriter("/home/andi/fuzzer.log");
            fileAppender.ImmediateFlush = true;
            fileAppender.Layout = new log4net.Layout.PatternLayout("[%date{dd.MM.yyyy HH:mm:ss,fff}]-%-5level-[%c]: %message%newline");
            fileAppender.File = "/home/andi/fuzzer.log";
            fileAppender.ActivateOptions();

            log4net.Appender.ConsoleAppender appender = new log4net.Appender.ConsoleAppender();
            appender.Name = "ConsoleAppender";
            appender.Layout = new log4net.Layout.PatternLayout("[%date{dd.MM.yyyy HH:mm:ss,fff}]-%-5level-[%c]: %message%newline");

            log4net.Appender.ForwardingAppender forwarder = new log4net.Appender.ForwardingAppender();
            forwarder.AddAppender(fileAppender);
            forwarder.AddAppender(appender);

            log4net.Config.BasicConfigurator.Configure(forwarder);

            //_logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
        }
예제 #55
0
        /// <summary>
        /// Initializes the logger
        /// </summary>
        private void SetupLogging()
        {
            if(ConfigurationManager.GetSection("log4net") == null)
            {
                log4net.Appender.ConsoleAppender appender = new log4net.Appender.ConsoleAppender();
                appender.Name = "ConsoleAppender";
                appender.Layout = new log4net.Layout.PatternLayout("[%date{dd.MM.yyyy HH:mm:ss,fff}]-%-5level-%t-[%c]: %message%newline");
                log4net.Config.BasicConfigurator.Configure(appender);
            }
            else
            {
                log4net.Config.XmlConfigurator.Configure((XmlElement)ConfigurationManager.GetSection("log4net"));
            }

            _logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
        }
예제 #56
0
        /// <summary>
        /// Configures the logging object to use a console logger. This would normally be used
        /// as a fallback when either the application does not have any logging configuration
        /// or there is an error in it.
        /// </summary>
        public static void ConfigureConsoleLogger()
        {
            log4net.Appender.ConsoleAppender appender = new log4net.Appender.ConsoleAppender();

            log4net.Layout.ILayout fallbackLayout = new log4net.Layout.PatternLayout("%m%n");
            appender.Layout = fallbackLayout;

            log4net.Config.BasicConfigurator.Configure(appender);
        }
예제 #57
0
파일: Main.cs 프로젝트: deveck/doTSS
 /// <summary>
 /// Initializes the logger
 /// </summary>
 private static void SetupLogging()
 {
     log4net.Appender.ConsoleAppender appender = new log4net.Appender.ConsoleAppender();
     appender.Name = "ConsoleAppender";
     appender.Layout = new log4net.Layout.PatternLayout("[%date{dd.MM.yyyy HH:mm:ss,fff}]-%-5level-[%c]: %message%newline");
     log4net.Config.BasicConfigurator.Configure(appender);
 }
예제 #58
0
        public static void Main(string[] args)
        {
            // set default options and parameter arguments
            string configfile = "";
            string account    = "";
            string task       = "";
            string provider   = "";
            string gui        = "";
            bool   help       = false;
            bool   list       = false;
            bool   debug      = false;

            var p = new OptionSet()
            {
                { "c=", "configuration file to use. Default is provider.config in assembly directory",
                  v => configfile = v },
                { "g=", "gui to use, default is CGui (only for aqbanking)", v => gui = v },
                { "v", "increase verbosity, usefull for debugging", v => debug = true },
                { "p=", "provider to use, default is aqbanking", v => provider = v },
                { "a=", "AccountIdentifier/Number to use", v => account = v },
                { "t=", "task that should be performed. Can be getbalance or gettransactions", v => task = v },
                { "l", "list all available accounts", v => list = v != null },
                { "h|?|help", "shows this help", v => help = v != null },
            };

            try {
                // readin cmdline options
                p.Parse(args);
                if (help)
                {
                    p.WriteOptionDescriptions(Console.Out);
                    return;
                }

                // read in configuration or use default
                ProviderConfig conf;
                if (!string.IsNullOrEmpty(configfile))
                {
                    conf = new ProviderConfig(configfile);
                }
                else
                {
                    conf = new ProviderConfig();
                }

                // setup logging
                log4net.Appender.ConsoleAppender appender;
                appender        = new log4net.Appender.ConsoleAppender();
                appender.Layout = new log4net.Layout.PatternLayout("%-4timestamp %-5level %logger %M %ndc - %message%newline");
                log4net.Config.BasicConfigurator.Configure(appender);
                if (debug)
                {
                    appender.Threshold = log4net.Core.Level.Debug;
                }
                else
                {
                    appender.Threshold = log4net.Core.Level.Warn;
                }


                if (!string.IsNullOrEmpty(gui))
                {
                    conf.Settings.Remove("Gui");
                    conf.Settings.Add(new KeyValueConfigurationElement("Gui", gui));
                }
                if (!string.IsNullOrEmpty(provider))
                {
                    conf.Settings.Remove("Provider");
                    conf.Settings.Add(new KeyValueConfigurationElement("Provider", provider));
                }

                // init
                using (var banking = new BankingFactory().GetProvider(conf)) {
                    // output account overview
                    if (list)
                    {
                        foreach (var acc in banking.Accounts)
                        {
                            acc.Print();
                        }
                        return;
                    }
                    // account requests (Balance, Transactions)

                    // parameter sanitation
                    IBankAccount b;
                    if (string.IsNullOrEmpty(account))
                    {
                        b = banking.Accounts.First();
                    }
                    else
                    {
                        b = banking.GetAccountByIdentifier(account);
                    }

                    if (string.IsNullOrEmpty(task))
                    {
                        throw new Exception("Task needed, specify via -t <task>");
                    }

                    switch (task)
                    {
                    case "gettransactions":
                        List <ITransaction> l = banking.GetTransactions(b);
                        foreach (ITransaction t in l)
                        {
                            t.Print();
                        }
                        return;

                    case "getbalance":
                        var bal = banking.GetBalance(b);
                        Console.WriteLine(bal);
                        return;
                    }
                }
            } catch (Exception e) {
                Console.WriteLine("ERROR: " + e.Message);
                p.WriteOptionDescriptions(Console.Out);
                //throw e;
            }
            return;
        }