public CustomTraceListenerSetting(BasicCustomTraceListenerData sourceElement, string name, string listenerType, string initData, string[] attributes, string traceOutputOptions, string filter, string formatter) : base(sourceElement, name, traceOutputOptions, filter) { this.listenerType = listenerType; this.initData = initData; this.attributes = attributes; this.formatter = formatter; }
internal static bool SaveChanges(CustomTraceListenerSetting setting, ConfigurationElement sourceElement) { BasicCustomTraceListenerData element = (BasicCustomTraceListenerData)sourceElement; element.TypeName = setting.ListenerType; CustomDataWmiMapperHelper.UpdateAttributes(setting.Attributes, element.Attributes); if (element is CustomTraceListenerData) { ((CustomTraceListenerData)element).Formatter = setting.Formatter; } element.InitData = setting.InitData; element.TraceOutputOptions = ParseHelper.ParseEnum <TraceOptions>(setting.TraceOutputOptions, false); SourceLevels filter; if (ParseHelper.TryParseEnum(setting.Filter, out filter)) { element.Filter = filter; } return(true); }
void IContainerPolicyCreator.CreatePolicies( IPolicyList policyList, string instanceName, ConfigurationElement configurationObject, IConfigurationSource configurationSource) { BasicCustomTraceListenerData castConfigurationObject = (BasicCustomTraceListenerData)configurationObject; string listenerName = castConfigurationObject.Name; Type listenerType = castConfigurationObject.Type; string initData = castConfigurationObject.InitData; TraceOptions traceOutputOptions = castConfigurationObject.TraceOutputOptions; NameValueCollection attributes = castConfigurationObject.Attributes; TraceFilter filter = castConfigurationObject.Filter != SourceLevels.All ? new EventTypeFilter(castConfigurationObject.Filter) : null; string formatterName = castConfigurationObject is CustomTraceListenerData ? ((CustomTraceListenerData)castConfigurationObject).Formatter : null; policyList.Set <IBuildPlanPolicy>( new DelegateBuildPlanPolicy( context => { TraceListener traceListener = SystemDiagnosticsTraceListenerCreationHelper.CreateSystemDiagnosticsTraceListener( listenerName, listenerType, initData, attributes); traceListener.Name = listenerName; traceListener.TraceOutputOptions = traceOutputOptions; traceListener.Filter = filter; CustomTraceListener customTraceListener = traceListener as CustomTraceListener; if (customTraceListener != null && !string.IsNullOrEmpty(formatterName)) { IBuilderContext formatterContext = context.CloneForNewBuild(NamedTypeBuildKey.Make <ILogFormatter>(formatterName), null); customTraceListener.Formatter = (ILogFormatter)formatterContext.Strategies.ExecuteBuildUp(formatterContext); } return(traceListener); }), new NamedTypeBuildKey(listenerType, instanceName)); }