/// <summary> /// Saves the Configuration object to file. /// </summary> /// <param name="config">A Configuration object.</param> public static void Save(Configuration config) { config.configs = SortByOnlineConfig(config.configs); FileStream configFileStream = null; StreamWriter configStreamWriter = null; try { configFileStream = File.Open(CONFIG_FILE, FileMode.Create); configStreamWriter = new StreamWriter(configFileStream); var jsonString = JsonConvert.SerializeObject(config, Formatting.Indented); configStreamWriter.Write(jsonString); configStreamWriter.Flush(); // NLog config.nLogConfig.SetLogLevel(config.isVerboseLogging ? verboseLogLevel : NLogConfig.LogLevel.Info); NLogConfig.SaveXML(config.nLogConfig); } catch (Exception e) { logger.LogUsefulException(e); } finally { if (configStreamWriter != null) { configStreamWriter.Dispose(); } if (configFileStream != null) { configFileStream.Dispose(); } } }
public static void Save(Configuration config) { config.configs = SortByOnlineConfig(config.configs); if (config.index >= config.configs.Count) { config.index = config.configs.Count - 1; } if (config.index < -1) { config.index = -1; } if (config.index == -1 && string.IsNullOrEmpty(config.strategy)) { config.index = 0; } config.isDefault = false; try { using (StreamWriter sw = new StreamWriter(File.Open(CONFIG_FILE, FileMode.Create))) { string jsonString = JsonConvert.SerializeObject(config, Formatting.Indented); sw.Write(jsonString); sw.Flush(); } try { // apply changes to NLog.config config.nLogConfig.SetLogLevel(config.isVerboseLogging ? verboseLogLevel : NLogConfig.LogLevel.Info); NLogConfig.SaveXML(config.nLogConfig); } catch (Exception e) { logger.Error(e, "Cannot set the log level to NLog config file. Please check if the nlog config file exists with corresponding XML nodes."); } } catch (IOException e) { logger.LogUsefulException(e); } }