Skip to content

Commit c6821ae

Browse files
committed
BREAKING: Enrichments renamed to plugins.
We updated the major version to reflect this breaking change.
1 parent 514656a commit c6821ae

File tree

65 files changed

+565
-415
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

65 files changed

+565
-415
lines changed

Source/Extras/Enrichments/ErrorEnrichment.cs

Lines changed: 0 additions & 23 deletions
This file was deleted.

Source/Extras/Enrichments/PrivateInformationEnrichment.cs

Lines changed: 0 additions & 15 deletions
This file was deleted.

Source/Extras/Exceptionless.Extras.csproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,10 @@
5151
<Compile Include="..\GlobalAssemblyInfo.cs">
5252
<Link>Properties\GlobalAssemblyInfo.cs</Link>
5353
</Compile>
54-
<Compile Include="Enrichments\ErrorEnrichment.cs" />
55-
<Compile Include="Enrichments\PrivateInformationEnrichment.cs" />
56-
<Compile Include="Enrichments\TraceLogEnrichment.cs" />
57-
<Compile Include="Enrichments\VersionEnrichment.cs" />
54+
<Compile Include="Plugins\ErrorPlugin.cs" />
55+
<Compile Include="Plugins\PrivateInformationPlugin.cs" />
56+
<Compile Include="Plugins\TraceLogPlugin.cs" />
57+
<Compile Include="Plugins\VersionPlugin.cs" />
5858
<Compile Include="ExceptionlessSection.cs" />
5959
<Compile Include="Extensions\EventBuilderExtensions.cs" />
6060
<Compile Include="Extensions\ExceptionlessClientExtensions.cs" />

Source/Extras/Extensions/EventBuilderExtensions.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
using System.Diagnostics;
33
using System.Linq;
44
using Exceptionless.Diagnostics;
5-
using Exceptionless.Enrichments.Default;
5+
using Exceptionless.Plugins.Default;
66

77
namespace Exceptionless {
88
public static class EventBuilderExtensions {
@@ -12,8 +12,8 @@ public static class EventBuilderExtensions {
1212
/// <param name="builder">The event builder object.</param>
1313
/// <param name="listener">The listener.</param>
1414
/// <param name="maxEntriesToInclude"></param>
15-
public static EventBuilder AddRecentTraceLogEntries(this EventBuilder builder, ExceptionlessTraceListener listener = null, int maxEntriesToInclude = TraceLogEnrichment.DefaultMaxEntriesToInclude) {
16-
TraceLogEnrichment.AddRecentTraceLogEntries(builder.Target, listener, maxEntriesToInclude);
15+
public static EventBuilder AddRecentTraceLogEntries(this EventBuilder builder, ExceptionlessTraceListener listener = null, int maxEntriesToInclude = TraceLogPlugin.DefaultMaxEntriesToInclude) {
16+
TraceLogPlugin.AddRecentTraceLogEntries(builder.Target, listener, maxEntriesToInclude);
1717
return builder;
1818
}
1919
}

Source/Extras/Extensions/ExceptionlessClientExtensions.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
using System;
22
using System.Threading.Tasks;
33
using Exceptionless.Dependency;
4-
using Exceptionless.Enrichments;
4+
using Exceptionless.Plugins;
55
using Exceptionless.Extras.Extensions;
66
using Exceptionless.Extras.Submission;
77
using Exceptionless.Logging;
@@ -14,10 +14,10 @@ public static void Startup(this ExceptionlessClient client, AppDomain appDomain
1414
client.Configuration.Resolver.Register<ISubmissionClient, SubmissionClient>();
1515
client.Configuration.Resolver.Register<IEnvironmentInfoCollector, EnvironmentInfoCollector>();
1616
client.Configuration.ReadAllConfig();
17-
client.Configuration.UseErrorEnrichment();
18-
client.Configuration.UseTraceLogEntriesEnrichment();
19-
client.Configuration.AddEnrichment<VersionEnrichment>();
20-
client.Configuration.AddEnrichment<PrivateInformationEnrichment>();
17+
client.Configuration.UseErrorPlugin();
18+
client.Configuration.UseTraceLogEntriesPlugin();
19+
client.Configuration.AddPlugin<VersionPlugin>();
20+
client.Configuration.AddPlugin<PrivateInformationPlugin>();
2121

2222
client.RegisterAppDomainUnhandledExceptionHandler(appDomain);
2323
client.RegisterTaskSchedulerUnobservedTaskExceptionHandler();

Source/Extras/Extensions/ExceptionlessExtraConfigurationExtensions.cs

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
using System;
2-
using System.Collections.Generic;
32
using System.Configuration;
43
using System.Diagnostics;
54
using System.IO;
65
using System.Linq;
76
using System.Reflection;
87
using Exceptionless.Dependency;
98
using Exceptionless.Diagnostics;
10-
using Exceptionless.Enrichments.Default;
9+
using Exceptionless.Plugins.Default;
1110
using Exceptionless.Extras;
1211
using Exceptionless.Extras.Storage;
1312
using Exceptionless.Extras.Utility;
@@ -20,9 +19,9 @@ public static class ExceptionlessExtraConfigurationExtensions {
2019
/// Reads the Exceptionless configuration from the app.config or web.config file.
2120
/// </summary>
2221
/// <param name="config">The configuration object you want to apply the attribute settings to.</param>
23-
public static void UseErrorEnrichment(this ExceptionlessConfiguration config) {
24-
config.RemoveEnrichment<SimpleErrorEnrichment>();
25-
config.AddEnrichment<Enrichments.ErrorEnrichment>();
22+
public static void UseErrorPlugin(this ExceptionlessConfiguration config) {
23+
config.RemovePlugin<SimpleErrorPlugin>();
24+
config.AddPlugin<Plugins.ErrorPlugin>();
2625
}
2726

2827
public static void UseIsolatedStorage(this ExceptionlessConfiguration config) {
@@ -47,16 +46,16 @@ public static void UseIsolatedStorageLogger(this ExceptionlessConfiguration conf
4746
config.Resolver.Register<IExceptionlessLog>(log);
4847
}
4948

50-
public static void UseTraceLogEntriesEnrichment(this ExceptionlessConfiguration config, int? defaultMaxEntriesToInclude = null) {
51-
int maxEntriesToInclude = config.Settings.GetInt32(TraceLogEnrichment.MaxEntriesToIncludeKey, defaultMaxEntriesToInclude ?? 0);
49+
public static void UseTraceLogEntriesPlugin(this ExceptionlessConfiguration config, int? defaultMaxEntriesToInclude = null) {
50+
int maxEntriesToInclude = config.Settings.GetInt32(TraceLogPlugin.MaxEntriesToIncludeKey, defaultMaxEntriesToInclude ?? 0);
5251

5352
if (!Trace.Listeners.OfType<ExceptionlessTraceListener>().Any())
5453
Trace.Listeners.Add(new ExceptionlessTraceListener(maxEntriesToInclude));
5554

56-
if (!config.Settings.ContainsKey(TraceLogEnrichment.MaxEntriesToIncludeKey) && defaultMaxEntriesToInclude.HasValue)
57-
config.Settings.Add(TraceLogEnrichment.MaxEntriesToIncludeKey, maxEntriesToInclude.ToString());
55+
if (!config.Settings.ContainsKey(TraceLogPlugin.MaxEntriesToIncludeKey) && defaultMaxEntriesToInclude.HasValue)
56+
config.Settings.Add(TraceLogPlugin.MaxEntriesToIncludeKey, maxEntriesToInclude.ToString());
5857

59-
config.AddEnrichment(typeof(TraceLogEnrichment).Name, c => new TraceLogEnrichment(c));
58+
config.AddPlugin(typeof(TraceLogPlugin).Name, 70, c => new TraceLogPlugin(c));
6059
}
6160

6261
public static void ReadAllConfig(this ExceptionlessConfiguration config, params Assembly[] configAttributesAssemblies) {

Source/Extras/Plugins/ErrorPlugin.cs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
using System;
2+
using Exceptionless.Extras;
3+
using Exceptionless.Logging;
4+
using Exceptionless.Models;
5+
6+
namespace Exceptionless.Plugins {
7+
[Priority(40)]
8+
public class ErrorPlugin : IEventPlugin {
9+
private readonly IExceptionlessLog _log;
10+
11+
public ErrorPlugin(IExceptionlessLog log) {
12+
_log = log;
13+
}
14+
15+
public void Run(EventPluginContext context) {
16+
var exception = context.Data.GetException();
17+
if (exception == null)
18+
return;
19+
20+
context.Event.Type = Event.KnownTypes.Error;
21+
context.Event.Data[Event.KnownDataKeys.Error] = exception.ToErrorModel(_log);
22+
}
23+
}
24+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
using System;
2+
3+
namespace Exceptionless.Plugins {
4+
[Priority(60)]
5+
public class PrivateInformationPlugin : IEventPlugin {
6+
public void Run(EventPluginContext context) {
7+
if (!context.Client.Configuration.IncludePrivateInformation)
8+
return;
9+
10+
var user = context.Event.GetUserIdentity();
11+
if (user == null || String.IsNullOrEmpty(user.Identity))
12+
context.Event.SetUserIdentity(Environment.UserName);
13+
}
14+
}
15+
}

Source/Extras/Enrichments/TraceLogEnrichment.cs renamed to Source/Extras/Plugins/TraceLogPlugin.cs

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,32 +7,28 @@
77
using Exceptionless.Models;
88
using Exceptionless.Models.Collections;
99

10-
namespace Exceptionless.Enrichments.Default {
11-
public class TraceLogEnrichment : IEventEnrichment, IDisposable {
10+
namespace Exceptionless.Plugins.Default {
11+
[Priority(70)]
12+
public class TraceLogPlugin : IEventPlugin, IDisposable {
1213
public const string MaxEntriesToIncludeKey = "TraceLogLimit";
1314
public const int DefaultMaxEntriesToInclude = 25;
1415

1516
private readonly ExceptionlessConfiguration _configuration;
1617
private readonly ExceptionlessTraceListener _listener;
1718

18-
public TraceLogEnrichment(ExceptionlessConfiguration config, ExceptionlessTraceListener listener = null) {
19+
public TraceLogPlugin(ExceptionlessConfiguration config, ExceptionlessTraceListener listener = null) {
1920
_configuration = config;
2021
_configuration.Settings.Changed += OnSettingsChanged;
2122
_listener = listener ?? Trace.Listeners.OfType<ExceptionlessTraceListener>().FirstOrDefault();
2223
}
2324

24-
/// <summary>
25-
/// Enrich the event with additional information.
26-
/// </summary>
27-
/// <param name="context">Context information.</param>
28-
/// <param name="ev">Event to enrich.</param>
29-
public void Enrich(EventEnrichmentContext context, Event ev) {
25+
public void Run(EventPluginContext context) {
3026
try {
3127
int maxEntriesToInclude = context.Client.Configuration.Settings.GetInt32(MaxEntriesToIncludeKey, DefaultMaxEntriesToInclude);
3228
if (maxEntriesToInclude > 0)
33-
AddRecentTraceLogEntries(ev, _listener, maxEntriesToInclude);
29+
AddRecentTraceLogEntries(context.Event, _listener, maxEntriesToInclude);
3430
} catch (Exception ex) {
35-
context.Log.FormattedError(typeof(TraceLogEnrichment), ex, "Error adding trace information: {0}", ex.Message);
31+
context.Log.FormattedError(typeof(TraceLogPlugin), ex, "Error adding trace information: {0}", ex.Message);
3632
}
3733
}
3834

Source/Extras/Enrichments/VersionEnrichment.cs renamed to Source/Extras/Plugins/VersionPlugin.cs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,18 @@
44
using Exceptionless.Extras;
55
using Exceptionless.Models;
66

7-
namespace Exceptionless.Enrichments {
8-
public class VersionEnrichment : IEventEnrichment {
7+
namespace Exceptionless.Plugins {
8+
[Priority(80)]
9+
public class VersionPlugin : IEventPlugin {
910
private static bool _checkedForVersion;
1011

11-
public void Enrich(EventEnrichmentContext context, Event ev) {
12-
if (ev.Data.ContainsKey(Event.KnownDataKeys.Version))
12+
public void Run(EventPluginContext context) {
13+
if (context.Event.Data.ContainsKey(Event.KnownDataKeys.Version))
1314
return;
1415

1516
object value;
1617
if (context.Client.Configuration.DefaultData.TryGetValue(Event.KnownDataKeys.Version, out value) && value is string) {
17-
ev.Data[Event.KnownDataKeys.Version] = value;
18+
context.Event.Data[Event.KnownDataKeys.Version] = value;
1819
return;
1920
}
2021

@@ -30,7 +31,7 @@ public void Enrich(EventEnrichmentContext context, Event ev) {
3031
if (String.IsNullOrEmpty(version))
3132
return;
3233

33-
ev.Data[Event.KnownDataKeys.Version] = context.Client.Configuration.DefaultData[Event.KnownDataKeys.Version] = version;
34+
context.Event.Data[Event.KnownDataKeys.Version] = context.Client.Configuration.DefaultData[Event.KnownDataKeys.Version] = version;
3435
}
3536

3637
private string GetVersionFromAssembly(Assembly assembly) {

0 commit comments

Comments
 (0)