예제 #1
0
        /// <summary>
        /// Automatically send session start, session heartbeats and session end events.
        /// </summary>
        /// <param name="config">Exceptionless configuration</param>
        /// <param name="sendHeartbeats">Controls whether heartbeat events are sent on an interval.</param>
        /// <param name="heartbeatInterval">The interval at which heartbeats are sent after the last sent event. The default is 30 seconds.</param>
        /// <param name="useSessionIdManagement">Allows you to manually control the session id. This is only recommended for single user desktop environments.</param>
        public static void UseSessions(this ExceptionlessConfiguration config, bool sendHeartbeats = true, TimeSpan?heartbeatInterval = null, bool useSessionIdManagement = false)
        {
            config.SessionsEnabled = true;

            if (useSessionIdManagement)
            {
                config.AddPlugin <SessionIdManagementPlugin>();
            }

            if (sendHeartbeats)
            {
                config.AddPlugin(new HeartbeatPlugin(heartbeatInterval));
            }
        }
예제 #2
0
        public static void UseSessions(this ExceptionlessConfiguration config, bool sendHeartbeats = true)
        {
            config.SessionsEnabled = true;

            if (sendHeartbeats)
            {
                config.AddPlugin <HeartbeatPlugin>();
            }
        }
예제 #3
0
        public static void UseTraceLogEntriesPlugin(this ExceptionlessConfiguration config, int?defaultMaxEntriesToInclude = null)
        {
            int maxEntriesToInclude = config.Settings.GetInt32(TraceLogPlugin.MaxEntriesToIncludeKey, defaultMaxEntriesToInclude ?? 0);

            if (!Trace.Listeners.OfType <ExceptionlessTraceListener>().Any())
            {
                Trace.Listeners.Add(new ExceptionlessTraceListener(maxEntriesToInclude));
            }

            if (!config.Settings.ContainsKey(TraceLogPlugin.MaxEntriesToIncludeKey) && defaultMaxEntriesToInclude.HasValue)
            {
                config.Settings.Add(TraceLogPlugin.MaxEntriesToIncludeKey, maxEntriesToInclude.ToString());
            }

            config.AddPlugin(typeof(TraceLogPlugin).Name, 70, c => new TraceLogPlugin(c));
        }
        public static void UseTraceLogEntriesPlugin(this ExceptionlessConfiguration config, int?defaultMaxEntriesToInclude = null)
        {
            try {
                int maxEntriesToInclude = config.Settings.GetInt32(TraceLogPlugin.MaxEntriesToIncludeKey, defaultMaxEntriesToInclude ?? 0);

                if (!Trace.Listeners.OfType <ExceptionlessTraceListener>().Any())
                {
                    Trace.Listeners.Add(new ExceptionlessTraceListener(maxEntriesToInclude));
                }

                if (!config.Settings.ContainsKey(TraceLogPlugin.MaxEntriesToIncludeKey) && defaultMaxEntriesToInclude.HasValue)
                {
                    config.Settings.Add(TraceLogPlugin.MaxEntriesToIncludeKey, maxEntriesToInclude.ToString());
                }

                config.AddPlugin(typeof(TraceLogPlugin).Name, 70, c => new TraceLogPlugin(c));
            } catch (Exception ex) {
                config.Resolver.GetLog().Error(typeof(ExceptionlessConfigurationExtensions), ex, String.Concat("Error adding ExceptionlessTraceListener: ", ex.Message));
            }
        }
예제 #5
0
 /// <summary>
 /// Reads the Exceptionless configuration from the app.config or web.config file.
 /// </summary>
 /// <param name="config">The configuration object you want to apply the attribute settings to.</param>
 public static void UseErrorPlugin(this ExceptionlessConfiguration config)
 {
     config.RemovePlugin <SimpleErrorPlugin>();
     config.AddPlugin <Plugins.ErrorPlugin>();
 }
 /// <summary>
 /// Automatically set a reference id for error events.
 /// </summary>
 public static void UseReferenceIds(this ExceptionlessConfiguration config)
 {
     config.AddPlugin <ReferenceIdPlugin>();
 }