Ejemplo n.º 1
0
        // 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);
        }