示例#1
0
        public void Register(RconModel rconModel)
        {
            _rconModel = rconModel;

            _nLogListener           = new NLogListener();
            _nLogListener.LogWrite += NLogListenerOnLogWrite;

            _cancellationTokenSource = new CancellationTokenSource();

            _logWriteTimerTask = PeriodicTaskFactory.Start(
                () =>
            {
                ProcessQueue();
            },
                intervalInMilliseconds: _LogWriteFlushTimeMs,
                delayInMilliseconds: 1000,
                duration: -1,
                maxIterations: -1,
                synchronous: false,
                cancelToken: _cancellationTokenSource.Token,
                periodicTaskCreationOptions: TaskCreationOptions.None);

            //// Repeat every 1 second
            //_logWriteTimerAction = ignored1 =>
            //                           {
            //                               if (ignored1.IsCompleted)
            //                                   return;
            //                               FlushBuffer();
            //                               //Task.Delay(_LogWriteFlushTimeMs, _cancellationTokenSource.Token).ContinueWith(ignored2 => _logWriteTimerAction(ignored2), _cancellationTokenSource.Token);
            //                               _logWriteTimerTask = Task.Delay(_LogWriteFlushTimeMs, _cancellationTokenSource.Token).ContinueWith(_logWriteTimerAction, _cancellationTokenSource.Token);
            //                           };

            //// Wait 1 sec, then start above repeating task
            //_logWriteTimerTask = Task.Delay(1000, _cancellationTokenSource.Token).ContinueWith(_logWriteTimerAction, _cancellationTokenSource.Token);
        }
示例#2
0
        public void NLogListener_WritesLogEntriesToNLog()
        {
            using (var log = new Log())
                using (var loggerFactory = new LogFactory())
                {
                    var memoryTarget = Helpers.NLog.SetupCapturingLoggingConfiguration(loggerFactory);
                    var listener     = new NLogListener(loggerFactory);

                    log.RegisterListener(listener);

                    log.Debug("Debug");
                    log.Info("Info");
                    log.Warning("Warning");
                    log.Error("Error");
                    log.Wtf("Wtf");

                    Assert.AreEqual(5, memoryTarget.Logs.Count);
                    Assert.AreEqual("Debug", memoryTarget.Logs[0]);
                    Assert.AreEqual("Info", memoryTarget.Logs[1]);
                    Assert.AreEqual("Warning", memoryTarget.Logs[2]);
                    Assert.AreEqual("Error", memoryTarget.Logs[3]);
                    Assert.AreEqual("Wtf", memoryTarget.Logs[4]);
                }
        }
示例#3
0
 public void NullTextFormatterThrowsException()
 {
     var listener = new NLogListener(null);
 }