Example #1
0
    private static void Main()
    {
      Logger.LogLevel = LoggingSettings.Settings.Level;

      var rootDir = LoggingSettings.Settings.DirPath;
      if (string.IsNullOrWhiteSpace(rootDir))
        rootDir = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);

      var logEncoder = new XmlLogEncoder();

      var byteWriter = new LazyStreamByteWriter(() => FileStreamFactory.CreateFileStream(
        Path.Combine(rootDir, Resources.SubdirectoryName)));

      Logger.AddLogWriter(new Lazy<ILogWriter>(() => new LogWriter(logEncoder, byteWriter)));

      // LogMsg message 1
      Logger.Log(LogLevel.Error, "id-str1");

      const string param = "param-str";

      // LogMsg message 2
      Logger.Log(LogLevel.Error, "id-str2", param, null);

      Fn();
    }
Example #2
0
        private static void Main(string[] args)
        {
            var logEncoder = new XmlLogEncoder();
              var byteWriter = new LazyStreamByteWriter(FileStreamFactory.CreateApplicationDataFileStream);
              var logWriter = new LogWriter(logEncoder, new[] {byteWriter});
              Logger.AddLogWriter(logWriter);

              Logger.Log(LogLevel.Error, "message");
        }
Example #3
0
        public void Log_message_and_all_stack_frames_are_encoded_if_frames_to_encode_is_negative()
        {
            const LogLevel level = LogLevel.Error;
              const string message = "Test Message";
              var stackTrace = new StackTrace(true);
              const int framesToEncode = -1;

              var xmlLogEncoder = new XmlLogEncoder();
              var bytes = xmlLogEncoder.EncodeLogMessage(level, message, stackTrace, framesToEncode);

              var stream = new MemoryStream(bytes);
              var lDocument = new XmlDocument();
              using (var xmlReader = XmlReader.Create(stream, new XmlReaderSettings {ConformanceLevel = ConformanceLevel.Fragment}))
              {
            lDocument.Load(xmlReader);
              }

              var lRootElement = lDocument.FirstChild as XmlElement;
              Assert.IsNotNull(lRootElement);
              Assert.AreEqual(level.ToString().ToLower(), lRootElement.Name);

              Assert.IsTrue(lRootElement.HasAttribute(Resources.TimestampAttributeName));

              // Check timestamp attribute contains a parseable datetime representation.
              // The actual value isn't important and will change each time the test is run anyway.
              DateTime datetime;
              Assert.IsTrue(DateTime.TryParse(lRootElement.GetAttribute(Resources.TimestampAttributeName), out datetime));

              Assert.IsTrue(lRootElement.HasAttribute(Resources.MessageAttributeName));
              Assert.AreEqual(message, lRootElement.GetAttribute(Resources.MessageAttributeName));

              var frameCount = 0;
              foreach (XmlElement stackFrameElement in lRootElement)
              {
            ++frameCount;
            Assert.AreEqual(Resources.FrameElementName, stackFrameElement.Name);
              }

              Assert.AreEqual(stackTrace.FrameCount, frameCount);
        }
Example #4
0
        public void Log_message_and_n_stack_frames_are_encoded_if_frames_to_encode_is_n()
        {
            const LogLevel level = LogLevel.Error;
              const string message = "Test Message";
              var stackTrace = new StackTrace(true);
              const int framesToEncode = 5;

              var xmlLogEncoder = new XmlLogEncoder();
              var bytes = xmlLogEncoder.EncodeLogMessage(level, message, stackTrace, framesToEncode);

              var stream = new MemoryStream(bytes);
              var lDocument = new XmlDocument();
              using (var xmlReader = XmlReader.Create(stream, new XmlReaderSettings {ConformanceLevel = ConformanceLevel.Fragment}))
              {
            lDocument.Load(xmlReader);
              }

              var lRootElement = lDocument.FirstChild as XmlElement;
              Assert.IsNotNull(lRootElement);
              Assert.AreEqual(framesToEncode, lRootElement.ChildNodes.Count);
        }