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"); }
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"]); }
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"); }