Пример #1
0
        public void EndScopeInvokesOptionsOnEndScope()
        {
            Logger logger = new Logger();

            var options = new LoggerOptions
            {
                Factory      = new KissLog.LoggerFactory(logger),
                OnBeginScope = (BeginScopeArgs args) =>
                {
                    string message = args.State?.ToString();
                    args.Logger.Trace(message);
                },
                OnEndScope = (EndScopeArgs args) =>
                {
                    args.Logger.Trace("Scope ended");
                }
            };

            ILogger adapter = new LoggerAdapter(options);

            using (adapter.BeginScope("Scope"))
            {
                adapter.LogInformation("Info message");
            }

            Assert.AreEqual(3, logger.DataContainer.LogMessages.Count());
            Assert.IsTrue(logger.DataContainer.LogMessages.ElementAt(0).Message == "Scope");
            Assert.IsTrue(logger.DataContainer.LogMessages.ElementAt(1).Message == "Info message");
            Assert.IsTrue(logger.DataContainer.LogMessages.ElementAt(2).Message == "Scope ended");
        }
Пример #2
0
        public void ScopeDataDictionaryIsReferenced()
        {
            Logger logger = new Logger();

            string value = $"ScopeData-{Guid.NewGuid()}";
            IDictionary <string, object> scopeData = null;

            var options = new LoggerOptions
            {
                Factory      = new KissLog.LoggerFactory(logger),
                OnBeginScope = (BeginScopeArgs args) =>
                {
                    args.ScopeData.Add("Key", value);
                },
                OnEndScope = (EndScopeArgs args) =>
                {
                    scopeData = args.ScopeData;
                }
            };

            ILogger adapter = new LoggerAdapter(options);

            using (adapter.BeginScope(null))
            {
            }

            Assert.IsNotNull(scopeData);
            Assert.AreEqual(value, scopeData["Key"]);
        }
Пример #3
0
        public void BeginScopeDoesNothingIfNoActionsAreDefined()
        {
            Logger logger = new Logger();

            var options = new LoggerOptions
            {
                Factory      = new KissLog.LoggerFactory(logger),
                OnBeginScope = null,
                OnEndScope   = null
            };

            ILogger adapter = new LoggerAdapter(options);

            using (adapter.BeginScope("Scope"))
            {
                adapter.LogInformation("Info message");
            }

            Assert.AreEqual(1, logger.DataContainer.LogMessages.Count());
            Assert.IsTrue(logger.DataContainer.LogMessages.ElementAt(0).Message == "Info message");
        }