/// <summary>
        /// Builds the <see cref="TraceListener" /> object represented by this configuration object.
        /// </summary>
        /// <param name="settings">The logging configuration settings.</param>
        /// <returns>
        /// A trace listener.
        /// </returns>
        public TraceListener BuildTraceListener(LoggingSettings settings)
        {
            Guard.ArgumentNotNull(settings, "settings");

            var listener = this.CoreBuildTraceListener(settings);

            listener.Name = this.Name;
            listener.TraceOutputOptions = this.TraceOutputOptions;

            if (this.Asynchronous)
            {
                listener =
                    new AsynchronousTraceListenerWrapper(
                        listener,
                        ownsWrappedTraceListener: true,
                        bufferSize: this.AsynchronousBufferSize,
                        maxDegreeOfParallelism: this.AsynchronousMaxDegreeOfParallelism,
                        disposeTimeout: this.AsynchronousDisposeTimeout);
            }

            if (this.Filter != SourceLevels.All)
            {
                listener.Filter = new EventTypeFilter(this.Filter);
            }

            return(listener);
        }
Ejemplo n.º 2
0
        private static LoggingConfiguration BuildProgrammaticConfig()
        {
            // Formatter
            TextFormatter formatter = new TextFormatter("Timestamp: {timestamp(local)}{newline}Message: {message}{newline}Category: {category}{newline}Priority: {priority}{newline}EventId: {eventid}{newline}ActivityId: {property(ActivityId)}{newline}Severity: {severity}{newline}Title:{title}{newline}");

            // Trace Listeners
            var flatFileTraceListener = new FlatFileTraceListener(@"C:\Temp\trace.log", "----------------------------------------", "----------------------------------------", formatter);
            var asyncTraceListener    = new AsynchronousTraceListenerWrapper(flatFileTraceListener);

            // Build Configuration
            var config = new LoggingConfiguration();

            config.AddLogSource(Category.Trace, SourceLevels.ActivityTracing, true).AddAsynchronousTraceListener(asyncTraceListener);
            config.IsTracingEnabled = true;

            return(config);
        }
Ejemplo n.º 3
0
        static LoggingConfiguration ConfigureDebugLog()
        {
            // configure a log that outputs everything in the debugger output window:
            var logConfig     = new LoggingConfiguration();
            var traceListener = new AsynchronousTraceListenerWrapper(new DefaultTraceListener());

            logConfig.AddLogSource(LogWriterFacades.General, SourceLevels.All, true, traceListener);
            logConfig.AddLogSource(LogWriterFacades.Exception, SourceLevels.All, true, traceListener);
            logConfig.AddLogSource(LogWriterFacades.Alert, SourceLevels.All, true, traceListener);
            logConfig.AddLogSource(LogWriterFacades.Email, SourceLevels.All, true, traceListener);
            logConfig.AddLogSource(LogWriterFacades.EventLog, SourceLevels.All, true, traceListener);
            logConfig.AddLogSource(LogWriterFacades.Trace, SourceLevels.All, true, traceListener);
            logConfig.AddLogSource(LogWriterFacades.StartCallTrace, SourceLevels.All, true, traceListener);
            logConfig.AddLogSource(LogWriterFacades.EndCallTrace, SourceLevels.All, true, traceListener);

            logConfig.Filters
            .Add(new LogEnabledFilter("All", true));

            return(logConfig);
        }
        public void TestInitialize()
        {
            this.synchronous   = new WrappedTraceListener();
            this.asynchronous  = new WrappedTraceListener();
            this.errorListener = new WrappedTraceListener();

            this.logWriter = new LogWriter(new LoggingConfiguration());
            this.logWriter.Configure(c =>
            {
                var asynchronous = new AsynchronousTraceListenerWrapper(this.asynchronous);

                c.AddLogSource("synchronous").AddTraceListener(this.synchronous);
                c.AddLogSource("asynchronous").AddTraceListener(asynchronous);
                var autoflush = c.AddLogSource("asynchronous-autoflush");
                autoflush.AddTraceListener(asynchronous);
                autoflush.AutoFlush = true;
                var mixed           = c.AddLogSource("mixed");
                mixed.AddTraceListener(this.synchronous);
                mixed.AddTraceListener(asynchronous);

                c.SpecialSources.LoggingErrorsAndWarnings.Listeners.Add(this.errorListener);
            });
        }