static void Main(string[] args) { var monitor = new object(); try { Listener.Config = Config.ParseConfig(out logStream, out logWriter); } catch (Exception e) { Log(new ApiLogMessage($"Failed to de-serialize config, using default config instead. Exception: {e.Message}{Environment.NewLine}{e.StackTrace}", ApiLogLevel.Warning)); Listener.Config = Config.DefaultConfig; } if ((args.Length == 1 || args.Length == 2) && args[0].ToLowerInvariant().Trim() == "verify") { bool showUnused = args.Length == 2 && args[1].ToLowerInvariant().Trim() == "--showunused"; bool result = MetadataStore.VerifyMetadata(showUnused, Log); if (result) { Log(new ApiLogMessage("No errors.", ApiLogLevel.Info)); } return; } try { MetadataStore.LoadMetadata(Log); } catch (Exception e) { Log(new ApiLogMessage($"Failed to load metadata. Exception: {e.Message}{Environment.NewLine}{e.StackTrace}", ApiLogLevel.Critical)); return; } watcher = new FileSystemWatcher(Environment.CurrentDirectory, "MusicCatConfig.json") { NotifyFilter = NotifyFilters.LastWrite }; watcher.Changed += OnConfigChange; watcher.EnableRaisingEvents = true; Listener.AttachLogger(Log); Console.CancelKeyPress += (sender, cancelArgs) => Monitor.Pulse(monitor); Listener.Start(); lock (monitor) { Monitor.Wait(monitor); } logWriter?.Dispose(); logStream?.Dispose(); Listener.Stop(); }
protected override void OnStart(string[] args) { try { Listener.Config = Config.ParseConfig(out logStream, out logWriter); } catch { Listener.Config = Config.DefaultConfig; } try { MetadataStore.LoadMetadata(); } catch (Exception e) { if (logStream != null) { logWriter?.WriteLine( $"{Enum.GetName(typeof(ApiLogLevel), ApiLogLevel.Critical)?.ToUpper()}: Failed to load metadata. Exception: {e.Message}{Environment.NewLine}{e.StackTrace}"); logWriter?.Flush(); } Environment.Exit(1); } Listener.AttachLogger(m => { if (m.Level >= displayLogLevel) { if (logStream != null) { logWriter?.WriteLine($"{Enum.GetName(typeof(ApiLogLevel), m.Level)?.ToUpper()}: {m.Message}"); logWriter?.Flush(); } } }); watcher = new FileSystemWatcher(Environment.CurrentDirectory, "MusicCatConfig.json") { NotifyFilter = NotifyFilters.LastWrite }; watcher.Changed += OnConfigChange; watcher.EnableRaisingEvents = true; Listener.Start(); }
static void Main(string[] args) { var monitor = new object(); string configJson = File.ReadAllText("BidCatConfig.json"); try { Listener.Config = JsonConvert.DeserializeObject <Config>(configJson); if (!string.IsNullOrWhiteSpace(Listener.Config.LogDir) && !File.Exists(Path.Combine(Listener.Config.LogDir, "BidCatLog.txt"))) { logStream = File.Create(Path.Combine(Listener.Config.LogDir, "BidCatLog.txt")); logWriter = new StreamWriter(logStream); } else if (!string.IsNullOrWhiteSpace(Listener.Config.LogDir)) { logStream = File.OpenWrite(Path.Combine(Listener.Config.LogDir, "BidCatLog.txt")); logWriter = new StreamWriter(logStream); } } catch (Exception e) { logger(new ApiLogMessage($"Failed to de-serialize config, using default config instead. Exception: {e.Message}{Environment.NewLine}{e.StackTrace}", ApiLogLevel.Warning)); Listener.Config = Config.DefaultConfig; } if (Listener.Config.StorageType == StorageType.Mongo && (Listener.Config.MongoSettings == null || Listener.Config.MongoSettings.Database == null || Listener.Config.MongoSettings.Host == null || Listener.Config.MongoSettings.Port == null)) { logger(new ApiLogMessage("Invalid configuration: Mongo is selected but one of the required settings is not present!", ApiLogLevel.Critical)); Environment.Exit(1); } Listener.AttachLogger(logger); Console.CancelKeyPress += (sender, cancelArgs) => Monitor.Pulse(monitor); Listener.Start(); lock (monitor) { Monitor.Wait(monitor); } Listener.Stop(); logWriter.Dispose(); logStream.Dispose(); }
protected override void OnStart(string[] args) { try { Listener.Config = Config.ParseConfig(out logStream, out logWriter); } catch { Listener.Config = Config.DefaultConfig; } try { MetadataStore.LoadMetadata(); } catch (Exception e) { if (logStream != null) { logWriter?.WriteLine( $"{Enum.GetName(typeof(ApiLogLevel), ApiLogLevel.Critical)?.ToUpper()}: Failed to load metadata. Exception: {e.Message}{Environment.NewLine}{e.StackTrace}"); logWriter?.Flush(); } Environment.Exit(1); } Listener.AttachLogger(m => { if (m.Level >= displayLogLevel) { if (logStream != null) { logWriter?.WriteLine($"{Enum.GetName(typeof(ApiLogLevel), m.Level)?.ToUpper()}: {m.Message}"); logWriter?.Flush(); } } }); Listener.Start(); }
protected override void OnStart(string[] args) { string configJson = File.ReadAllText("BidCatConfig.json"); try { Listener.Config = JsonConvert.DeserializeObject <Config>(configJson); if (!string.IsNullOrWhiteSpace(Listener.Config.LogDir) && !File.Exists(Path.Combine(Listener.Config.LogDir, "BidCatLog.txt"))) { logStream = File.Create(Path.Combine(Listener.Config.LogDir, "BidCatLog.txt")); logWriter = new StreamWriter(logStream); } else if (!string.IsNullOrWhiteSpace(Listener.Config.LogDir)) { logStream = File.OpenWrite(Path.Combine(Listener.Config.LogDir, "BidCatLog.txt")); logWriter = new StreamWriter(logStream); } } catch { Listener.Config = Config.DefaultConfig; } Listener.AttachLogger(m => { if (m.Level >= displayLogLevel) { if (logStream != null) { logWriter?.WriteLine($"{Enum.GetName(typeof(ApiLogLevel), m.Level)?.ToUpper()}: {m.Message}"); logWriter?.Flush(); } } }); Listener.Start(); }