public void TearDown()
 {
     _testRunDebugLogs = null;
     _outputSink       = null;
     _testAgent        = null;
     SelfLog.Disable();
 }
        public void WhenInvalidApiKeyProvided_AndSelfLogOrTraceIsNotConfigured_EverythingIsOkay()
        {
            Trace.Listeners.Clear();
            SelfLog.Disable();
            var logger = new LoggerConfiguration()
                         .WriteTo.LogglyBulk("!!FAKE KEY!!", new[] { "!!FAKE TAG!!" }).CreateLogger();

            logger.Fatal("!!FAKE MESSAGE!!");

            logger.Dispose();
        }
예제 #3
0
        public void WrappingWarnsAboutNonDisposableWrapper()
        {
            var messages = new List <string>();

            SelfLog.Enable(s => messages.Add(s));

            new LoggerConfiguration()
            .WriteTo.Dummy(w => w.Sink <DisposeTrackingSink>())
            .CreateLogger();

            SelfLog.Disable();
            Assert.NotEmpty(messages);
        }
        public void CarriesMessageTemplateProperties()
        {
            var selfLog = new StringWriter();

            SelfLog.Enable(selfLog);

            var(logger, sink) = SetUp(LogLevel.Trace);

            logger.LogInformation("Hello, {Recipient}", "World");

            Assert.True(sink.Writes[0].Properties.ContainsKey("Recipient"));
            Assert.Equal("\"World\"", sink.Writes[0].Properties["Recipient"].ToString());
            Assert.Equal("Hello, {Recipient}", sink.Writes[0].MessageTemplate.Text);

            SelfLog.Disable();
            Assert.Empty(selfLog.ToString());
        }
        public void ProvidingLessParametersThanNamedPropertiesInTheTemplateWorksAndSelfLogs()
        {
            var selfLogOutput = new List <string>();

            SelfLog.Enable(selfLogOutput.Add);

            Assert.Equal(new[]
            {
                new LogEventProperty("who", new ScalarValue("who")),
                new LogEventProperty("what", new ScalarValue("what")),
            },
                         Capture("Hello {who} {what} {where}", "who", "what"),
                         new LogEventPropertyStructuralEqualityComparer());

            Assert.Single(selfLogOutput,
                          s => s.EndsWith("Named property count does not match parameter count: Hello {who} {what} {where}"));

            SelfLog.Disable();
        }
예제 #6
0
        public void CarriesMessageTemplateProperties()
        {
#pragma warning disable CA2000 // Dispose objects before losing scope
            var selfLog = new StringWriter();
#pragma warning restore CA2000 // Dispose objects before losing scope
            SelfLog.Enable(selfLog);

            var t      = SetUp(LogLevel.Trace);
            var logger = t.Item1;
            var sink   = t.Item2;

            logger.LogInformation("Hello, {Recipient}", "World");

            Assert.True(sink.Writes[0].Properties.ContainsKey("Recipient"));
            Assert.Equal("\"World\"", sink.Writes[0].Properties["Recipient"].ToString());
            Assert.Equal("Hello, {Recipient}", sink.Writes[0].MessageTemplate.Text);

            SelfLog.Disable();
            Assert.Empty(selfLog.ToString());
        }
예제 #7
0
        public void MessagesAreWrittenWhenOutputIsSet()
        {
            Messages = new List <string>();
            SelfLog.Enable(m =>
            {
                Messages = Messages ?? new List <string>();
                Messages.Add(m);
            });

            SelfLog.WriteLine("Hello {0} {1} {2}", 0, 1, 2);
            Assert.Contains(Messages, m => m.EndsWith("Hello 0 1 2"));

            // Better to do this here than in another test, since at this point
            // we've confirmed there's actually something to disable.
            var count = Messages.Count;

            SelfLog.Disable();
            SelfLog.WriteLine("Unwritten");
            Assert.Equal(Messages.Count, count);
        }
예제 #8
0
 public void Dispose()
 {
     SelfLog.Disable();
 }
예제 #9
0
 public void TearDown()
 {
     _testRunDebugLogs = null;
     SelfLog.Disable();
 }