/// <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); }
/// <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; }
/// <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; }
/// <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(); } }