private static LogDefinition GetLogDefinition(Log log) { var definition = new LogDefinition(); definition.Id = log.Name; definition.Type = log.GetType().AssemblyQualifiedName; LoadPropertyValues(definition, log); return(definition); }
public Log ResolveLog(string name) { LogDefinition log = Logs[name]; TypeCreator creator = new TypeCreator(log.Type); foreach (var formatterProperty in log.Properties) { creator.MemberValues.Add(formatterProperty.Key, formatterProperty.Value); } var value = (Log)creator.Create(); foreach (var logListenerName in log.ListenerNames) { if (Listeners.ContainsKey(logListenerName)) { value.AddListener(ResolveListener(logListenerName)); continue; } else { bool added = false; foreach (var configuration in Imports) { if (configuration.Listeners.ContainsKey(logListenerName)) { value.AddListener(configuration.ResolveListener(logListenerName)); added = true; break; } } if (added) { continue; } } throw new KeyNotFoundException("Listener '" + logListenerName + "' not found in configuration or imports."); } if (Formatters.ContainsKey(log.FormatterName)) { value.Formatter = ResolveFormatter(log.FormatterName); } else { foreach (var configuration in Imports) { if (configuration.Formatters.ContainsKey(log.FormatterName)) { value.Formatter = configuration.ResolveFormatter(log.FormatterName); break; } } } return(value); }