public static void Run([TimerTrigger("*/30 * * * * *")] TimerInfo myTimer, ILogger logger)
        {
            // CRON expression syntax: <second> <minute> <hour> <day-of-month> <month> <day-of-week> <year> <command>

            AppInsightsLogger appInsightsLogger = new AppInsightsLogger(logger, LOGGING_SERVICE_NAME, LOGGING_SERVICE_VERSION);
            QueueLogger       queueLogger       = new QueueLogger(appInsightsLogger);

            queueLogger.LogQueueLength(BACKEND_STATUS_CREATED_PATTERN, adjustment: 1);  // Add 1 so that we account for > 1 waiting.
        }
Example #2
0
        public static void Run([TimerTrigger("0 */5 * * * *")] TimerInfo myTimer, ILogger logger)
        {
            // CRON expression syntax: <second> <minute> <hour> <day-of-month> <month> <day-of-week> <year> <command>

            AppInsightsLogger appInsightsLogger = new AppInsightsLogger(logger, LOGGING_SERVICE_NAME, LOGGING_SERVICE_VERSION);
            QueueLogger       queueLogger       = new QueueLogger(appInsightsLogger);

            queueLogger.LogQueueLength(BACKEND_STATUS_COMPLETED_PATTERN);
            queueLogger.LogQueueLength(BACKEND_STATUS_RUNNING_PATTERN);
            queueLogger.LogQueueLength(BACKEND_STATUS_FAILED_PATTERN);
        }
        public void Call_Log_with_message(string message)
        {
            //Console logger message
            IMessageLogger cl = new ConsoleLogger();

            cl.Log(message);

            //Queue logger message
            IMessageLogger ql = new QueueLogger();

            ql.Log(message);
        }
Example #4
0
        public void Call_Log_with_message()
        {
            Mock <ConsoleLogger> mokConsoleLogger = new Mock <ConsoleLogger>();

            ConsoleLogger oConsoleLogger = mokConsoleLogger.Object;

            oConsoleLogger.Log("helloWorld");
            mokConsoleLogger.Verify(t => t.Log("helloWorld"));

            Mock <QueueLogger> mokQueueLogger = new Mock <QueueLogger>();

            QueueLogger oQueueLogger = mokQueueLogger.Object;

            oQueueLogger.Log("helloWorld");
            mokQueueLogger.Verify(t => t.Log("helloWorld"));
            //throw new NotImplementedException();
        }
Example #5
0
        public IEnumerator Run()
        {
            PostPatchLoader.Instance.databaseConfigs = null;

            if (!Directory.Exists(logsDirPath))
            {
                Directory.CreateDirectory(logsDirPath);
            }

            kspLogger.Info("Patching started on a new thread, all output will be directed to " + logPath);

            MessageQueue <ILogMessage> mmLogQueue = new MessageQueue <ILogMessage>();
            QueueLogRunner             logRunner  = new QueueLogRunner(mmLogQueue);
            ITaskStatus loggingThreadStatus       = BackgroundTask.Start(delegate
            {
                using (StreamLogger streamLogger = new StreamLogger(new FileStream(logPath, FileMode.Create)))
                {
                    logRunner.Run(streamLogger);
                    streamLogger.Info("Done!");
                }
            });

            // Wait for game database to be initialized for the 2nd time and wait for any plugins to initialize
            yield return(null);

            yield return(null);

            IBasicLogger mmLogger = new QueueLogger(mmLogQueue);

            IEnumerable <ModListGenerator.ModAddedByAssembly> modsAddedByAssemblies = ModListGenerator.GetAdditionalModsFromStaticMethods(mmLogger);

            IEnumerable <IProtoUrlConfig> databaseConfigs = null;

            MMPatchLoader patchLoader = new MMPatchLoader(modsAddedByAssemblies, mmLogger);

            ITaskStatus patchingThreadStatus = BackgroundTask.Start(delegate
            {
                databaseConfigs = patchLoader.Run();
            });

            while (true)
            {
                yield return(null);

                if (!patchingThreadStatus.IsRunning)
                {
                    logRunner.RequestStop();
                }

                Status = patchLoader.status;
                Errors = patchLoader.errors;

                if (!patchingThreadStatus.IsRunning && !loggingThreadStatus.IsRunning)
                {
                    break;
                }
            }

            if (patchingThreadStatus.IsExitedWithError)
            {
                kspLogger.Exception("The patching thread threw an exception", patchingThreadStatus.Exception);
                FatalErrorHandler.HandleFatalError("The patching thread threw an exception");
            }

            if (loggingThreadStatus.IsExitedWithError)
            {
                kspLogger.Exception("The logging thread threw an exception", loggingThreadStatus.Exception);
                FatalErrorHandler.HandleFatalError("The logging thread threw an exception");
            }

            if (databaseConfigs == null)
            {
                kspLogger.Error("The patcher returned a null collection of configs");
                FatalErrorHandler.HandleFatalError("The patcher returned a null collection of configs");
                yield break;
            }

            PostPatchLoader.Instance.databaseConfigs = databaseConfigs;
        }
Example #6
0
 public QueueLoggerTest()
 {
     queue  = Substitute.For <IMessageQueue <ILogMessage> >();
     logger = new QueueLogger(queue);
 }
Example #7
0
 public QueueLoggerTest()
 {
     logger = new QueueLogger(queue);
 }