コード例 #1
0
ファイル: TestHelper.cs プロジェクト: etsangsplk/ck-core
 static TestHelper()
 {
     _monitor = new ActivityMonitor();
     // Do not pollute the console by default...
     // ... but this may be useful sometimes: LogsToConsole does the job.
     _console = new ActivityMonitorConsoleClient();
 }
コード例 #2
0
 static TestHelper()
 {
     _monitor = new ActivityMonitor();
     _monitor.Output.BridgeTarget.HonorMonitorFilter = false;
     _console = new ActivityMonitorConsoleClient();
     _monitor.Output.RegisterClients(_console);
 }
コード例 #3
0
        public void ClientFilterPropagatesToMonitor()
        {
            var monitor = new ActivityMonitor( false );
            var client = new ActivityMonitorConsoleClient();
            monitor.Output.RegisterClient( client );

            Assert.That( monitor.MinimalFilter, Is.EqualTo( LogFilter.Undefined ) );

            client.Filter = LogFilter.Release;

            Assert.That( client.Filter, Is.EqualTo( LogFilter.Release ) );
            Assert.That( monitor.ActualFilter, Is.EqualTo( LogFilter.Release ) );
        }
コード例 #4
0
        public void ClientFilterPropagatesToMonitor()
        {
            var monitor = new ActivityMonitor(false);
            var client  = new ActivityMonitorConsoleClient();

            monitor.Output.RegisterClient(client);

            Assert.That(monitor.MinimalFilter, Is.EqualTo(LogFilter.Undefined));

            client.Filter = LogFilter.Release;

            Assert.That(client.Filter, Is.EqualTo(LogFilter.Release));
            Assert.That(monitor.ActualFilter, Is.EqualTo(LogFilter.Release));
        }
コード例 #5
0
        internal MonitorTestHelper(ITestHelperConfiguration config, IBasicTestHelper basic)
        {
            _config = config;
            _basic  = basic;

            basic.OnlyOnce(() =>
            {
                _logToBinFile = _config.GetBoolean("Monitor/LogToBinFile")
                                ?? _config.GetBoolean("Monitor/LogToBinFiles")
                                ?? false;
                _logToTextFile = _config.GetBoolean("Monitor/LogToTextFile")
                                 ?? _config.GetBoolean("Monitor/LogToTextFiles")
                                 ?? false;

                string logLevel = _config.Get("Monitor/LogLevel");
                if (logLevel != null)
                {
                    var lf = LogFilter.Parse(logLevel);
                    ActivityMonitor.DefaultFilter = lf;
                }
                LogFile.RootLogPath = basic.LogFolder;
                var conf            = new GrandOutputConfiguration();
                if (_logToBinFile)
                {
                    var binConf = new BinaryFileConfiguration
                    {
                        UseGzipCompression = true,
                        Path = FileUtil.CreateUniqueTimedFolder(LogFile.RootLogPath + "CKMon/", null, DateTime.UtcNow)
                    };
                    conf.AddHandler(binConf);
                }
                if (_logToTextFile)
                {
                    var txtConf = new TextFileConfiguration
                    {
                        Path = FileUtil.CreateUniqueTimedFolder(LogFile.RootLogPath + "Text/", null, DateTime.UtcNow)
                    };
                    conf.AddHandler(txtConf);
                }
                GrandOutput.EnsureActiveDefault(conf, clearExistingTraceListeners: false);
                var monitorListener = Trace.Listeners.OfType <MonitorTraceListener>().FirstOrDefault(m => m.GrandOutput == GrandOutput.Default);
                // (Defensive programming) There is no real reason for this listener to not be in the listeners, but it can be.
                if (monitorListener != null)
                {
                    // If our standard MonitorTraceListener has been injected, then we remove the StaticBasicTestHelper.SafeTraceListener
                    // that throws Exceptions instead of callinf FailFast.
                    Trace.Listeners.Remove("CK.Testing.SafeTraceListener");
                }
            });
            _monitor               = new ActivityMonitor("MonitorTestHelper");
            _console               = new ActivityMonitorConsoleClient();
            LogToConsole           = _config.GetBoolean("Monitor/LogToConsole") ?? false;
            basic.OnCleanupFolder += OnCleanupFolder;
            basic.OnlyOnce(() =>
            {
                var basePath = LogFile.RootLogPath + "Text" + FileUtil.DirectorySeparatorString;
                if (Directory.Exists(basePath))
                {
                    CleanupTimedFolders(_monitor, _basic, basePath, MaxCurrentLogFolderCount, MaxArchivedLogFolderCount);
                }
                basePath = LogFile.RootLogPath + "CKMon" + FileUtil.DirectorySeparatorString;
                if (Directory.Exists(basePath))
                {
                    CleanupTimedFolders(_monitor, _basic, basePath, MaxCurrentLogFolderCount, MaxArchivedLogFolderCount);
                }
            });
        }