/// <summary>
 /// Creates the <see cref="IEventTextFormatter" /> instance.
 /// </summary>
 /// <returns>
 /// The event text formatter instance.
 /// </returns>
 public override IEventTextFormatter CreateEventTextFormatter()
 {
     var formatter = new JsonEventTextFormatter(this.Formatting)
     {
         DateTimeFormat = this.DateTimeFormat,
     };
     return formatter;
 }
Esempio n. 2
0
 private void ConfigureLogging()
 {
     eventListener = new ObservableEventListener();
     eventListener.EnableEvents(SparkEngineEventSource.Log, EventLevel.LogAlways,
         Keywords.All);
     eventListener.EnableEvents(SparkMongoEventSource.Log, EventLevel.LogAlways,
         Keywords.All);
     eventListener.EnableEvents(SemanticLoggingEventSource.Log, EventLevel.LogAlways, Keywords.All);
     var formatter = new JsonEventTextFormatter(EventTextFormatting.Indented);
     eventListener.LogToFlatFile(@"C:\projects\fhir\log\spark.log", formatter);
 }
        /// <summary>
        /// Creates the <see cref="IEventTextFormatter" /> instance.
        /// </summary>
        /// <param name="element">The configuration element.</param>
        /// <returns>
        /// The formatter instance.
        /// </returns>
        public IEventTextFormatter CreateFormatter(XElement element)
        {
            var formatter = this.GetFormatterElement(element);

            EventTextFormatting formatting = (EventTextFormatting)Enum.Parse(typeof(EventTextFormatting), (string)formatter.Attribute("formatting") ?? JsonEventTextFormatter.DefaultEventTextFormatting.ToString());

            var includeSeparator = formatter.Attribute("includeEntrySeparator");

            var jsonFormatter = new JsonEventTextFormatter(formatting, (string)formatter.Attribute("dateTimeFormat"));
            if (includeSeparator != null)
            {
                jsonFormatter.IncludeEntrySeparator = (bool)includeSeparator;
            }

            return jsonFormatter;
        }
        public void WhenPositionalParametersInPayloadInJson()
        {
            var fileNameWithoutExtension = "Task1557_ForRollingFlatFile_JsonFormatter";
            var fileName = fileNameWithoutExtension + ".log";
            FlatFileHelper.DeleteCreatedLogFiles(fileNameWithoutExtension);
            var logger = TestEventSourceNoAttributes.Logger;
            var jsonFormatter = new JsonEventTextFormatter();
            jsonFormatter.DateTimeFormat = "dd/MM/yyyy";

            TestScenario.With1Listener(
                logger,
                listener =>
                {
                    listener.LogToRollingFlatFile(fileName, 1, "yyyy", RollFileExistsBehavior.Increment, RollInterval.None, jsonFormatter, 0);
                    listener.EnableEvents(logger, EventLevel.LogAlways);
                    for (int i = 0; i < 7; i++)
                    {
                        logger.ObjectArrayEvent4(1000, "stringstringarg10", 2000, "stringstringarg20", 3000);
                    }

                    Assert.IsTrue(File.Exists(fileNameWithoutExtension + "." + DateTime.Now.Year + ".1.log"));
                });

            string readFile = File.ReadAllText(fileName);
            Assert.IsTrue(readFile.Contains("Check if it is logged"));
            Assert.IsTrue(readFile.Contains("{\"arg0\":1000,\"arg1\":\"stringstringarg10\",\"arg2\":2000,\"arg3\":\"stringstringarg20\",\"arg4\":3000}"));
        }
        public void WhenEventWithMessageInAttributeUsingJson()
        {
            var consoleOutputInterceptor = new MockConsoleOutputInterceptor();
            var formatter = new EventTextFormatter(EventTextFormatter.DashSeparator);
            var jsonFormatter = new JsonEventTextFormatter();
            jsonFormatter.DateTimeFormat = "dd/MM/yyyy";
            var logger = TestEventSourceNoAttributes.Logger;

            TestScenario.With1Listener(
                logger,
                listener =>
                {
                    listener.LogToConsole(jsonFormatter);
                    listener.EnableEvents(logger, EventLevel.LogAlways);
                    logger.ObjectArrayEvent4(1000, "stringstringarg10", 2000, "stringstringarg20", 3000);
                });

            var entry = Regex.Split(consoleOutputInterceptor.Ouput, formatter.Header).Where(c => !string.IsNullOrWhiteSpace(c)).SingleOrDefault();
            Assert.IsNotNull(entry);
            StringAssert.Contains(entry, "{\"arg0\":1000,\"arg1\":\"stringstringarg10\",\"arg2\":2000,\"arg3\":\"stringstringarg20\",\"arg4\":3000}");
            StringAssert.Contains(entry, "Check if it is logged");
        }
 protected override void Given()
 {
     formatter = new JsonEventTextFormatter() { IncludeEntrySeparator = false };
     collectionListener = new StringCollectionEventListener(formatter);
     collectionListener.EnableEvents(logger, EventLevel.LogAlways);
 }
 public void when_creating_formatter_with_specific_values()
 {
     var formatter = new JsonEventTextFormatter(EventTextFormatting.Indented) { DateTimeFormat = "R" };
     Assert.AreEqual("R", formatter.DateTimeFormat);
     Assert.AreEqual(EventTextFormatting.Indented, formatter.Formatting);
 }
        public void when_creating_formatter_with_null_dateTimeFormat()
        {
            var formatter = new JsonEventTextFormatter(EventTextFormatting.Indented) { DateTimeFormat = null };

            Assert.IsNull(formatter.DateTimeFormat);
        }
 public void when_creating_formatter_with_default_values()
 {
     var formatter = new JsonEventTextFormatter();
     Assert.IsNull(formatter.DateTimeFormat);
     Assert.AreEqual(EventTextFormatting.None, formatter.Formatting);
 }
 protected override void Given()
 {
     formatter = new JsonEventTextFormatter();
     listener = new InMemoryEventListener() { Formatter = formatter };
     listener.EnableEvents(logger, EventLevel.LogAlways);
 }
        public void WhenPositionalParametersInMessageInJson()
        {
            var fileName = "Task1557.log";
            File.Delete(fileName);
            var formatter = new EventTextFormatter(EventTextFormatter.DashSeparator);
            var jsonformatter = new JsonEventTextFormatter();
            jsonformatter.DateTimeFormat = "dd/MM/yyyy";
            var logger = TestEventSourceNoAttributes.Logger;

            TestScenario.With1Listener(
                logger,
                listener =>
                {
                    listener.LogToFlatFile(fileName, jsonformatter);
                    listener.EnableEvents(logger, EventLevel.LogAlways);
                    logger.ObjectArrayEvent4(10, "stringarg1", 20, "stringarg3", 30);
                });

            Assert.IsTrue(File.Exists(fileName));
            var entries = Regex.Split(ReadFileWithoutLock(fileName), formatter.Header).Where(c => !string.IsNullOrWhiteSpace(c));
            Assert.AreEqual<int>(1, entries.Count());
            string readFile = File.ReadAllText(fileName);
            Assert.IsTrue(readFile.Contains("Check if it is logged"));
            Assert.IsTrue(readFile.Contains("{\"arg0\":10,\"arg1\":\"stringarg1\",\"arg2\":20,\"arg3\":\"stringarg3\",\"arg4\":30}"));
        }
 protected override void When()
 {
     sut =
         FormatterElementFactory.Get(XElement.Parse(string.Format(@"<consoleSink xmlns='http://schemas.microsoft.com/practices/2013/entlib/semanticlogging/etw' name='ConsoleEventListener1'><sources><eventSource name='Foo' level='Error'/></sources>{0}</consoleSink>", GetElementText()))) as JsonEventTextFormatter;
 }
        public void EventWithPayloadAndMessageAndDateTimeFormatInJson()
        {
            var logger = MockEventSrcForJson.Logger;
            var formatter = new JsonEventTextFormatter();
            formatter.DateTimeFormat = "dd/MM/yyyy";

            string rawOutput = string.Empty;
            using (var listener = new InMemoryEventListener() { Formatter = formatter })
            {
                listener.EnableEvents(logger, EventLevel.LogAlways, MockEventSrcForJson.Keywords.Errors);
                try
                {
                    logger.LogUsingMessage(MockEventSrcForJson.LogMessage);
                    rawOutput = Encoding.Default.GetString(listener.Stream.ToArray());
                }
                finally
                {
                    listener.DisableEvents(logger);
                }
            }

            string today = System.DateTime.Today.ToString(formatter.DateTimeFormat);
            string tomorrow = System.DateTime.Today.AddDays(1).ToString(formatter.DateTimeFormat);
            Assert.IsTrue(rawOutput.Contains(today) || rawOutput.Contains(tomorrow));
        }