/// <summary> /// Initializes a new instance of the <see cref="LoggingConfig"/> class. /// </summary> /// <param name="configString">The config string.</param> /// <param name="createLogger">The create logger.</param> /// <param name="updateLogger">The update logger.</param> public LoggingConfig(string configString, CallbackCreateLogger createLogger, CallbackUpdateLogger updateLogger) { Load(configString, createLogger, updateLogger); InitializeCurrent(); }
/// <summary> /// Loads the specified config string. /// </summary> /// <example>Namespace1.Class1=*;Class2=off;Namespace1.Namespace2.Class3=Debug</example> /// <param name="configString">The config string.</param> /// <param name="createLogger">The create logger.</param> /// <param name="updateLogger">The update logger.</param> public virtual void Load(string configString, CallbackCreateLogger createLogger, CallbackUpdateLogger updateLogger) { m_value = configString; if (createLogger == null && m_createLogger == null) { createLogger = DefaultCallbackCreateLogger; } if (updateLogger == null && m_updateLogger == null) { updateLogger = DefaultCallbackUpdateLogger; } if (m_createLogger == null) { m_createLogger = createLogger; } if (m_updateLogger == null) { m_updateLogger = updateLogger; } DisableAllLoggers(); if (configString != null && Enabled) { string[] pieces = configString.Trim().Split(';', ','); if (pieces.Length == 1 && pieces[0] == "") { return; } foreach (string piece in pieces) { string[] parts = piece.Trim().Split('='); if (parts != null && parts.Length > 0 && parts.Length <= 2 && parts[0].Trim().Length > 0) { string key = parts[0].ToLower().Trim(); if (key == AllLoggersDesignatorSplat) { key = AllLoggersDesignator; } string val = parts.Length == 1 ? AllLoggersDesignatorSplat : parts[1]; LoggerSeverity threshold = GetLogValue(val); Logger logger; if (key == AllLoggersDesignator) { // Updating all loggers foreach (Logger logval in m_loggers.Values) { m_updateLogger(logval, threshold); PrepareLogger(threshold, logval); } } // See if the logger already exists if (m_loggers.TryGetValue(key, out logger)) { // Already exists m_updateLogger(logger, threshold); PrepareLogger(threshold, logger); } else { logger = m_createLogger(key, threshold); PostProcessNewLogger(key, threshold, logger); } } else { throw new ArgumentException(string.Format("Check format of log string ({0}).", piece)); } } } }
/// <summary> /// Loads the specified config string. /// </summary> /// <example>Namespace1.Class1=*;Class2=off;Namespace1.Namespace2.Class3=Debug</example> /// <param name="configString">The config string.</param> /// <param name="createLogger">The create logger.</param> /// <param name="updateLogger">The update logger.</param> public virtual void Load(string configString, CallbackCreateLogger createLogger, CallbackUpdateLogger updateLogger) { m_value = configString; if (createLogger == null) { createLogger = DefaultCallbackCreateLogger; } if (updateLogger == null) { updateLogger = DefaultCallbackUpdateLogger; } m_createLogger = createLogger; m_updateLogger = updateLogger; DisableAllLoggers(); if (configString != null && Enabled) { string[] pieces = configString.Trim().Split(';', ','); if (pieces.Length == 1 && pieces[0] == "") { return; } foreach (string piece in pieces) { string[] parts = piece.Trim().Split('='); if (parts != null && parts.Length > 0 && parts.Length <= 2 && parts[0].Trim().Length > 0) { string key = parts[0].ToLower().Trim(); if (key == AllLoggersDesignatorSplat) { key = AllLoggersDesignator; } string val = parts.Length == 1 ? AllLoggersDesignatorSplat : parts[1]; LoggerSeverity threshold = GetLogValue(val); Logger logger; // See if the logger already exists if (m_loggers.TryGetValue(key, out logger)) { // Already exists m_updateLogger(logger, threshold); PrepareLogger(threshold, logger); } else { logger = m_createLogger(key, threshold); PostProcessNewLogger(key, threshold, logger); } } else { throw new ArgumentException(string.Format("Check format of log string ({0}).", piece)); } } } }