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])); } }
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_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])); }
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 }
/// <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)"); } }
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])); } }