/// <summary>
        /// Arrange <see cref="Fetcher"/>'s members if possible, if it is an <see cref="IRawArrangedLayout"/>.
        /// </summary>
        /// <param name="arrangement">arangement to use, can be null</param>
        /// <param name="converters">converters to consider, can be null</param>
        /// <param name="fetcher">fetches an object from a logging event</param>
        /// <param name="renderer">serializes the object</param>
        /// <param name="decorators">decorates the object before serialization</param>
        public virtual void SetUp(IArrangement arrangement, IEnumerable <ConverterInfo> converters, IRawLayout fetcher, IObjectRenderer renderer, IEnumerable <IDecorator> decorators)
        {
            var decoratorsArray = decorators == null ? null : Enumerable.ToArray(decorators);

            Fetcher    = fetcher ?? Fetcher ?? CreateFetcher();
            Decorators = decoratorsArray ?? Decorators ?? CreateDecorators();
            Renderer   = renderer ?? Renderer ?? CreateRenderer();
            Arrange(arrangement, converters);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Add <see cref="PatternConverter.Properties"/> or make use of <see cref="ISerializingPatternConverter.SetUp"/>,
        /// call <see cref="IOptionHandler.ActivateOptions"/>
        /// </summary>
        /// <param name="conv">serializer to be set up, see also <seealso cref="ISerializingPatternConverter"/></param>
        /// <param name="converters">converters to be used collected from parent class</param>
        /// <param name="arrangement">arrangement to be used collected from parent class</param>
        /// <param name="fetcher">fetcher to use</param>
        /// <param name="renderer">renderer to use</param>
        /// <param name="decorators">decorators to use</param>
        /// <remarks>
        /// <para>
        /// Please note that properties are only supported with log4net 1.2.11 and above.
        /// </para>
        /// </remarks>
        protected virtual void SetUpSerializingConverter(PatternConverter conv, ConverterInfo[] converters, IArrangement arrangement, IRawLayout fetcher, IObjectRenderer renderer, IDecorator[] decorators)
        {
            var serializedConv = conv as ISerializingPatternConverter;

            if (serializedConv != null)
            {
                serializedConv.SetUp(arrangement, converters, fetcher, renderer, decorators);
            }
#if !LOG4NET_1_2_10_COMPATIBLE
            else
            {
                LogLog.Warn(GetType(), String.Format("Converter is not a ISerializingPatternConverter: {0}. Passing fetcher, renderer, decorators, arrangement and converters as properties.", conv));
                conv.Properties["arrangement"] = arrangement;
                conv.Properties["converters"]  = converters;
                conv.Properties["fetcher"]     = fetcher;
                conv.Properties["renderer"]    = renderer;
                conv.Properties["decorators"]  = decorators;
            }
 private MongoDBAppenderField(string name, IRawLayout layout) : this(name, layout, "String")
 {
 }
 private MongoDBAppenderField(string name, IRawLayout layout, string bsonType)
 {
     Name     = name;
     Layout   = layout;
     BsonType = bsonType;
 }
Ejemplo n.º 5
0
 /// <summary>
 /// Add fetcher to be passed to serializing pattern converter
 /// </summary>
 /// <param name="value">fetcher</param>
 /// <remarks>
 /// This method will be most useful for XML configuration.
 /// </remarks>
 public virtual void AddFetcher(IRawLayout value)
 {
     m_fetcher = value;
 }
Ejemplo n.º 6
0
        /// <summary>
        /// Add <see cref="PatternConverter.Properties"/>,
        /// call <see cref="IOptionHandler.ActivateOptions"/>
        /// </summary>
        /// <param name="conv">serializer to be set up</param>
        /// <param name="converters">converters to be used collected from parent class</param>
        /// <param name="arrangement">arrangement to be used collected from parent class</param>
        /// <param name="fetcher">fetcher to use</param>
        /// <param name="renderer">renderer to use</param>
        /// <param name="decorators">decorators to use</param>
        /// <remarks>
        /// <para>
        /// Please note that properties are only supported with log4net 1.2.11 and above.
        /// </para>
        /// </remarks>
        protected virtual void SetUpSerializingConverter(PatternConverter conv, ConverterInfo[] converters, IArrangement arrangement, IRawLayout fetcher, IObjectRenderer renderer, IDecorator[] decorators)
        {
            conv.Properties["arrangement"] = arrangement;
            conv.Properties["converters"]  = converters;
            conv.Properties["fetcher"]     = fetcher;
            conv.Properties["renderer"]    = renderer;
            conv.Properties["decorators"]  = decorators;

            IOptionHandler optionHandler = conv as IOptionHandler;

            if (optionHandler != null)
            {
                optionHandler.ActivateOptions();
            }
        }