// Implement ICanCreateElement public void CreateElement(StringBuilder sb, Dictionary <string, string> appenderNames, int sequence, Func <string, string> virtualToAbsoluteFunc) { try { string jsVariableName = string.Format("{0}{1}", Constants.JsLoggerVariablePrefix, sequence); JavaScriptHelpers.GenerateLogger(jsVariableName, name, sb); JavaScriptHelpers.GenerateSetOptions(jsVariableName, this, appenderNames, virtualToAbsoluteFunc, sb, null); } catch (Exception e) { string displayName = String.IsNullOrEmpty(name) ? "<nameless root logger>" : name;; throw new ConfigurationException(displayName, e); } }
// -------------------------------- public void ProcessLogger(XmlElement xe, string parentName, Dictionary <string, string> appenderNames, Sequence sequence, IEnumerable <AttributeInfo> loggerAttributes, StringBuilder sb) { if (xe == null) { return; } var appendersValue = new AppendersValue(appenderNames); string appenders = XmlHelpers.OptionalAttribute(xe, "appenders", null, appendersValue.ValidValueRegex); string loggerName = XmlHelpers.OptionalAttribute(xe, "name", ""); JavaScriptHelpers.GenerateLogger(Constants.JsLoggerVariable, loggerName, sb); AttributeValueCollection attributeValues = new AttributeValueCollection(); if (appenders != null) { attributeValues[Constants.JsLoggerAppendersOption] = new Value(appenders, appendersValue); } Utils.ProcessOptionAttributes(Constants.JsLoggerVariable, xe, loggerAttributes, attributeValues, sb); }