コード例 #1
0
        public void CanWrite()
        {
            // Arrange
            var     loggerMock    = new Mock <ILogger>();
            Message loggedMessage = null;

            loggerMock.Setup(x => x.Log(It.IsAny <Message>())).Callback <Message>(msg => loggedMessage = msg);
            var target = new ElmahIoTarget(loggerMock.Object);

            var config = new LoggingConfiguration();

            config.AddTarget("elmah.io", target);

            var rule = new LoggingRule("*", LogLevel.Info, target);

            config.LoggingRules.Add(rule);

            LogManager.Configuration = config;

            var logger = LogManager.GetLogger("Test");

            // Act
            var logEventInfo = new LogEventInfo(LogLevel.Warn, "", "Warning");

            logEventInfo.Properties.Add("Key", "Value");
            logger.Log(logEventInfo);

            // Assert
            Assert.That(loggedMessage, Is.Not.Null);
            Assert.That(loggedMessage.Severity, Is.EqualTo(Severity.Warning));
            Assert.That(loggedMessage.Title, Is.StringContaining("Warning"));
            Assert.That(loggedMessage.Data.Count, Is.EqualTo(1));
            Assert.That(loggedMessage.Data.First().Key, Is.EqualTo("Key"));
            Assert.That(loggedMessage.Data.First().Value, Is.EqualTo("Value"));
        }
コード例 #2
0
        public void CanWrite()
        {
            // Arrange
            var clientMock   = new Mock <IElmahioAPI>();
            var messagesMock = new Mock <IMessages>();

            clientMock.Setup(x => x.Messages).Returns(messagesMock.Object);
            CreateMessage loggedMessage = null;

            messagesMock
            .Setup(x => x.CreateAndNotify(It.IsAny <Guid>(), It.IsAny <CreateMessage>()))
            .Callback <Guid, CreateMessage>((logId, msg) =>
            {
                loggedMessage = msg;
            });
            var target = new ElmahIoTarget(clientMock.Object)
            {
                ApiKey = "ApiKey",
                LogId  = Guid.NewGuid().ToString()
            };

            var config = new LoggingConfiguration();

            config.AddTarget("elmah.io", target);

            var rule = new LoggingRule("*", LogLevel.Info, target);

            config.LoggingRules.Add(rule);

            LogManager.Configuration = config;

            var logger = LogManager.GetLogger("Test");

            // Act
            var logEventInfo = new LogEventInfo(LogLevel.Warn, "", "Warning");

            logEventInfo.Properties.Add("Key", "Value");
            logger.Log(logEventInfo);

            // Assert
            Assert.That(loggedMessage, Is.Not.Null);
            Assert.That(loggedMessage.Severity, Is.EqualTo(Severity.Warning.ToString()));
            Assert.That(loggedMessage.Title, Does.Contain("Warning"));
            Assert.That(loggedMessage.Data.Count, Is.EqualTo(1));
            Assert.That(loggedMessage.Data.First().Key, Is.EqualTo("Key"));
            Assert.That(loggedMessage.Data.First().Value, Is.EqualTo("Value"));
        }
コード例 #3
0
        public void SetUp()
        {
            clientMock   = new Mock <IElmahioAPI>();
            messagesMock = new Mock <IMessages>();
            clientMock.Setup(x => x.Messages).Returns(messagesMock.Object);
            var target = new ElmahIoTarget(clientMock.Object)
            {
                ApiKey = "ApiKey",
                LogId  = Guid.NewGuid().ToString(),
                Layout = "${longdate}|${level:uppercase=true}|${logger}|${message}",
            };

            var config = new LoggingConfiguration();

            config.AddTarget("elmah.io", target);

            var rule = new LoggingRule("*", LogLevel.Info, target);

            config.LoggingRules.Add(rule);

            LogManager.Configuration = config;

            logger = LogManager.GetLogger("Test");
        }