public void AppendShouldProduceLog()
        {
            var file          = "file1.txt";
            var appender      = new FileAppender(file);
            var streamFactory = new Mock <IStreamFactory>();
            var stream        = new MemoryStream();
            var streamWriter  = new StreamWriter(stream);

            streamFactory.Setup(x => x.CreateStreamWriter(It.IsAny <string>())).Returns(streamWriter);
            appender.SetField("_factory", streamFactory.Object);
            appender.Append(BuidLogEvent("My Topic", "My Message"));
            streamWriter.Flush();

            var res      = GetResult(stream);
            var expected = _dateString
                           + " - [Info] My Topic: My Message ["
                           + Thread.CurrentThread.ManagedThreadId + "]"
                           + Environment.NewLine;

            Assert.Equal(expected, res);

            appender.Append(BuidLogEvent("My Topic2", "My Message2"));
            streamWriter.Flush();
            res = GetResult(stream);
            appender.Dispose();
            expected = _dateString
                       + " - [Info] My Topic2: My Message2 ["
                       + Thread.CurrentThread.ManagedThreadId + "]"
                       + Environment.NewLine;
            Assert.Equal(expected, res);
        }
        public void Test_Append_NewFile()
        {
            Console.WriteLine ("");
            Console.WriteLine ("Preparing test");
            Console.WriteLine ("");

            var dataDirectory = Path.GetFullPath (".data");

            var folderName = "TestFolder";

            var fileName = "TestFile.txt";

            var deviceKey = "deviceKey";

            var text = "Hello world!";

            var appender = new FileAppender (dataDirectory, folderName, deviceKey);

            Console.WriteLine ("");
            Console.WriteLine ("Executing test");
            Console.WriteLine ("");

            appender.Append (fileName, text);

            Console.WriteLine ("");
            Console.WriteLine ("Analysing test");
            Console.WriteLine ("");

            var filePath = Path.Combine (dataDirectory, folderName + "/" + fileName);

            var fileContents = File.ReadAllLines (filePath);

            Assert.AreEqual (1, fileContents.Length);
        }
        public static void Main()
        {
            var simpleFormatter = new SimpleFormatter();

            var appender = new FileAppender();

            appender.Formatter = simpleFormatter;
            appender.Append("Hello!");
        }
        public void IntegrationTestWithFileShouldProduceExpectedResult()
        {
            var file     = "file.txt";
            var appender = new FileAppender(file);

            appender.Append(BuidLogEvent("My Topic", "My Message"));
            appender.Dispose();
            var reader   = File.OpenText(file);
            var result   = reader.ReadToEnd();
            var expected = _dateString
                           + " - [Info] My Topic: My Message ["
                           + Thread.CurrentThread.ManagedThreadId + "]"
                           + Environment.NewLine;

            Assert.Equal(expected, result);
        }
Exemple #5
0
    private void StoreMessages()
    {
        while (!_disposing)
        {
            while (!_messages.IsEmpty)
            {
                try
                {
                    LogMessage message;
                    if (!_messages.TryPeek(out message))
                    {
                        Thread.Sleep(5);
                    }

                    if (_appender == null || _appender.FileName != _filePath)
                    {
                        _appender = new FileAppender(_filePath);
                    }

                    var messageToWrite = string.Format(LogTimeFormat, message.Time,
                                                       message.Type, message.Message);
                    if (_appender.Append(messageToWrite))
                    {
                        _messages.TryDequeue(out message);
                    }
                    else
                    {
                        Thread.Sleep(5);
                    }
                }
                catch (Exception e)
                {
                    break;
                }
            }

            _mre.Reset();
            _mre.WaitOne(500);
        }
    }