Exemple #1
0
        public void SyslogLogger_TwoLogManyCalls_WillRunSequentially()
        {
            var watcher = new SyslogWatcher(FakeAppName, SyslogFileToWatch);
            var logger1 = new SyslogLogger(FakeAppName + "1");
            var logger2 = new SyslogLogger(FakeAppName + "2");

            watcher.StartWatching();
            string[] messages =
            {
                "First log message",
                "Second log message",
                "Third log message",
                "Fourth log message",
                "Fifth log message"
            };
            logger1.LogMany(SyslogPriority.Error, messages);
            logger2.LogMany(SyslogPriority.Error, messages);
            string[] data = watcher.WaitForData(10).ToArray();
            watcher.StopWatching();
            for (int i = 0; i < messages.Length; i++)
            {
                // Expect messages in sequence, logger1's five lines followed by logger2's five lines
                string expectedAppName = FakeAppName + (i / 5 == 0 ? "1" : "2");
                Assert.That(data[i], Is.StringContaining(expectedAppName));
                Assert.That(data[i], Is.StringContaining(messages[i % 5]));
            }
        }
		public void SyslogLogger_TwoLoggers_WillNotInterefereWithEachOther()
		{
			var watcher = new SyslogWatcher(FakeAppName, SyslogFileToWatch);
			var logger1 = new SyslogLogger(FakeAppName + "1");
			var logger2 = new SyslogLogger(FakeAppName + "2");
			watcher.StartWatching();
			string[] messages = 
			{
				"First log message",
				"Second log message",
				"Third log message",
				"Fourth log message",
				"Fifth log message"
			};
			foreach (string s in messages)
			{
				logger1.Error(s);
				logger2.Error(s);
			}
			string[] data = watcher.WaitForData(10).ToArray();
			watcher.StopWatching();
			for (int i = 0; i < messages.Length; i++)
			{
				// Expect messages perfectly interleaved, logger1 followed by logger2 all five times
				string expectedAppName = FakeAppName + (i % 2 == 0 ? "1" : "2");
				Assert.That(data[i], Is.StringContaining(expectedAppName));
				Assert.That(data[i], Is.StringContaining(messages[i / 2]));
			}
		}
Exemple #3
0
        public void SyslogLogger_TwoLoggers_WillNotInterefereWithEachOther()
        {
            var watcher = new SyslogWatcher(FakeAppName, SyslogFileToWatch);
            var logger1 = new SyslogLogger(FakeAppName + "1");
            var logger2 = new SyslogLogger(FakeAppName + "2");

            watcher.StartWatching();
            string[] messages =
            {
                "First log message",
                "Second log message",
                "Third log message",
                "Fourth log message",
                "Fifth log message"
            };
            foreach (string s in messages)
            {
                logger1.Error(s);
                logger2.Error(s);
            }
            string[] data = watcher.WaitForData(10).ToArray();
            watcher.StopWatching();
            for (int i = 0; i < messages.Length; i++)
            {
                // Expect messages perfectly interleaved, logger1 followed by logger2 all five times
                string expectedAppName = FakeAppName + (i % 2 == 0 ? "1" : "2");
                Assert.That(data[i], Is.StringContaining(expectedAppName));
                Assert.That(data[i], Is.StringContaining(messages[i / 2]));
            }
        }
		public void SyslogLogger_WritesOneLine()
		{
			var watcher = new SyslogWatcher(FakeAppName, SyslogFileToWatch);
			var logger = new SyslogLogger(FakeAppName);
			watcher.StartWatching();
			logger.Error("This string should be in the results");
			IEnumerable<string> data = watcher.WaitForData();
			watcher.StopWatching();
			Assert.That(data, Has.Some.StringContaining("This string should be in the results"));
		}
Exemple #5
0
        public void SyslogLogger_WritesOneLine()
        {
            var watcher = new SyslogWatcher(FakeAppName, SyslogFileToWatch);
            var logger  = new SyslogLogger(FakeAppName);

            watcher.StartWatching();
            logger.Error("This string should be in the results");
            IEnumerable <string> data = watcher.WaitForData();

            watcher.StopWatching();
            Assert.That(data, Has.Some.StringContaining("This string should be in the results"));
        }
		public void SyslogLogger_LogMany_WritesManyLines()
		{
			var watcher = new SyslogWatcher(FakeAppName, SyslogFileToWatch);
			var logger = new SyslogLogger(FakeAppName);
			watcher.StartWatching();
			string[] messages = 
			{
				"First log message",
				"Second log message",
				"Third log message",
				"Fourth log message",
				"Fifth log message"
			};
			logger.LogMany(SyslogPriority.Error, messages);
			string[] data = watcher.WaitForData(5).ToArray();
			watcher.StopWatching();
			for (int i = 0; i < messages.Length; i++)
				Assert.That(data[i], Is.StringContaining(messages[i]));
		}
Exemple #7
0
        private static void SetUpErrorHandling()
        {
            ErrorReport.EmailAddress = "*****@*****.**";
            ErrorReport.AddStandardProperties();
#if LINUX
            if (Platform.IsUnix && Environment.GetEnvironmentVariable("DISPLAY") == null)
            {
                ExceptionHandler.Init(new SyslogExceptionHandler("FixFwData"));
            }
            else
#endif
            ExceptionHandler.Init();
#if LINUX
            if (Platform.IsUnix)
            {
                logger = new SyslogLogger("FixFwData");
            }
#endif
        }
Exemple #8
0
        /// <summary>
        /// 对外不能创建类的实例
        /// </summary>
        private LoggerHelper()
        {
            switch (LoggerConfig.loggerType)
            {
            case LoggerType.AppCenter:

                AppCenter.Start(string.Format("android={0};", AppConfig.AppCenterAndroidSecret), typeof(Analytics), typeof(Crashes));

                iLogger = new AppCenterLogger();

                break;

            case LoggerType.AppInsights:

                break;

            case LoggerType.Graylog:

                break;

            case LoggerType.LogglyHttp:

                break;

            case LoggerType.LogglySyslog:

                break;

            case LoggerType.Syslog:
                var genOptions = new SyslogOptions
                {
                    HostNameOrIp = "106.52.218.254",
                    Port         = 514,
                    AppNameOrTag = "Notes"
                };
                iLogger = new SyslogLogger(genOptions);
                break;

            default:
                throw new ArgumentException("请正确配置LoggerConfig的LoggerType节点(AppCenter,AppInsights,Graylog,LogglyHttp,LogglySyslog,Syslog)");
            }
        }
Exemple #9
0
        public void SyslogLogger_LogMany_WritesManyLines()
        {
            var watcher = new SyslogWatcher(FakeAppName, SyslogFileToWatch);
            var logger  = new SyslogLogger(FakeAppName);

            watcher.StartWatching();
            string[] messages =
            {
                "First log message",
                "Second log message",
                "Third log message",
                "Fourth log message",
                "Fifth log message"
            };
            logger.LogMany(SyslogPriority.Error, messages);
            string[] data = watcher.WaitForData(5).ToArray();
            watcher.StopWatching();
            for (int i = 0; i < messages.Length; i++)
            {
                Assert.That(data[i], Is.StringContaining(messages[i]));
            }
        }
		public void SyslogLogger_TwoLogManyCalls_WillRunSequentially()
		{
			var watcher = new SyslogWatcher(FakeAppName, SyslogFileToWatch);
			var logger1 = new SyslogLogger(FakeAppName + "1");
			var logger2 = new SyslogLogger(FakeAppName + "2");
			watcher.StartWatching();
			string[] messages = 
			{
				"First log message",
				"Second log message",
				"Third log message",
				"Fourth log message",
				"Fifth log message"
			};
			logger1.LogMany(SyslogPriority.Error, messages);
			logger2.LogMany(SyslogPriority.Error, messages);
			string[] data = watcher.WaitForData(10).ToArray();
			watcher.StopWatching();
			for (int i = 0; i < messages.Length; i++)
			{
				// Expect messages in sequence, logger1's five lines followed by logger2's five lines
				string expectedAppName = FakeAppName + (i / 5 == 0 ? "1" : "2");
				Assert.That(data[i], Is.StringContaining(expectedAppName));
				Assert.That(data[i], Is.StringContaining(messages[i % 5]));
			}
		}