Skip to content

Commit 2ca471e

Browse files
committed
Merge pull request #95 from exceptionless/feature/excludes
Feature/excludes
2 parents 689978d + fc8238c commit 2ca471e

22 files changed

+564
-62
lines changed

Source/Extras/Extensions/ExceptionlessExtraConfigurationExtensions.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,17 +36,17 @@ public static void UseFolderStorage(this ExceptionlessConfiguration config, stri
3636
config.Resolver.Register<IObjectStorage>(new FolderObjectStorage(config.Resolver, folder));
3737
}
3838

39-
public static void UseTraceLogger(this ExceptionlessConfiguration config, LogLevel minLogLevel = LogLevel.Info) {
40-
config.Resolver.Register<IExceptionlessLog>(new TraceExceptionlessLog { MinimumLogLevel = minLogLevel });
39+
public static void UseTraceLogger(this ExceptionlessConfiguration config, LogLevel minLogLevel = null) {
40+
config.Resolver.Register<IExceptionlessLog>(new TraceExceptionlessLog { MinimumLogLevel = minLogLevel ?? LogLevel.Info });
4141
}
4242

43-
public static void UseFileLogger(this ExceptionlessConfiguration config, string logPath, LogLevel minLogLevel = LogLevel.Info) {
44-
var log = new SafeExceptionlessLog(new FileExceptionlessLog(logPath)) { MinimumLogLevel = minLogLevel };
43+
public static void UseFileLogger(this ExceptionlessConfiguration config, string logPath, LogLevel minLogLevel = null) {
44+
var log = new SafeExceptionlessLog(new FileExceptionlessLog(logPath)) { MinimumLogLevel = minLogLevel ?? LogLevel.Info };
4545
config.Resolver.Register<IExceptionlessLog>(log);
4646
}
4747

48-
public static void UseIsolatedStorageLogger(this ExceptionlessConfiguration config, LogLevel minLogLevel = LogLevel.Info) {
49-
var log = new SafeExceptionlessLog(new IsolatedStorageFileExceptionlessLog("exceptionless.log")) { MinimumLogLevel = minLogLevel };
48+
public static void UseIsolatedStorageLogger(this ExceptionlessConfiguration config, LogLevel minLogLevel = null) {
49+
var log = new SafeExceptionlessLog(new IsolatedStorageFileExceptionlessLog("exceptionless.log")) { MinimumLogLevel = minLogLevel ?? LogLevel.Info };
5050
config.Resolver.Register<IExceptionlessLog>(log);
5151
}
5252

Source/Extras/Logging/FileExceptionlessLog.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ public FileExceptionlessLog(string filePath, bool append = false) {
1818
throw new ArgumentNullException("filePath");
1919

2020
FilePath = filePath;
21+
MinimumLogLevel = LogLevel.Trace;
2122
_append = append;
2223

2324
Init();

Source/Platforms/Log4net/BufferingExceptionlessAppender.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,10 @@ protected override void Append(LoggingEvent loggingEvent) {
3333
if (!_client.Configuration.IsValid)
3434
return;
3535

36+
var minLogLevel = _client.Configuration.Settings.GetMinLogLevel(loggingEvent.LoggerName);
37+
if (loggingEvent.Level.ToLogLevel() < minLogLevel)
38+
return;
39+
3640
base.Append(loggingEvent);
3741
}
3842
}

Source/Platforms/Log4net/ExceptionlessAppender.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,11 @@ public override void ActivateOptions() {
2525
protected override void Append(LoggingEvent loggingEvent) {
2626
if (!_client.Configuration.IsValid)
2727
return;
28-
28+
29+
var minLogLevel = _client.Configuration.Settings.GetMinLogLevel(loggingEvent.LoggerName);
30+
if (loggingEvent.Level.ToLogLevel() < minLogLevel)
31+
return;
32+
2933
_client.SubmitFromLogEvent(loggingEvent);
3034
}
3135
}

Source/Platforms/Log4net/ExceptionlessClientExtensions.cs

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
using System;
22
using System.Collections.Generic;
33
using System.Linq;
4+
using Exceptionless.Logging;
45
using log4net.Core;
56

67
namespace Exceptionless.Log4net {
78
public static class ExceptionlessClientExtensions {
89
public static EventBuilder CreateFromLogEvent(this ExceptionlessClient client, LoggingEvent ev) {
9-
var builder = ev.ExceptionObject != null ? client.CreateException(ev.ExceptionObject) : client.CreateLog(ev.LoggerName, ev.RenderedMessage, ev.Level.Name);
10+
var builder = ev.ExceptionObject != null ? client.CreateException(ev.ExceptionObject) : client.CreateLog(ev.LoggerName, ev.RenderedMessage, ev.Level.ToLogLevel());
1011
builder.Target.Date = ev.TimeStamp;
1112

1213
if (!String.IsNullOrWhiteSpace(ev.RenderedMessage))
@@ -26,6 +27,25 @@ public static EventBuilder CreateFromLogEvent(this ExceptionlessClient client, L
2627
return builder;
2728
}
2829

30+
public static LogLevel ToLogLevel(this Level level) {
31+
if (level == Level.Trace || level == Level.Finest)
32+
return LogLevel.Trace;
33+
if (level == Level.Debug || level == Level.Fine)
34+
return LogLevel.Debug;
35+
if (level == Level.Info)
36+
return LogLevel.Info;
37+
if (level == Level.Warn)
38+
return LogLevel.Warn;
39+
if (level == Level.Error)
40+
return LogLevel.Error;
41+
if (level == Level.Fatal)
42+
return LogLevel.Fatal;
43+
if (level == Level.Off)
44+
return LogLevel.Off;
45+
46+
return LogLevel.Off;
47+
}
48+
2949
public static void SubmitFromLogEvent(this ExceptionlessClient client, LoggingEvent ev) {
3050
CreateFromLogEvent(client, ev).Submit();
3151
}

Source/Platforms/Log4net/Log4netExceptionlessLog.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44

55
namespace Exceptionless.Log4net {
66
public class Log4netExceptionlessLog : IExceptionlessLog {
7-
public Log4netExceptionlessLog(LogLevel? minimumLogLevel = null) {
8-
if (minimumLogLevel.HasValue)
9-
MinimumLogLevel = minimumLogLevel.Value;
7+
public Log4netExceptionlessLog(LogLevel minimumLogLevel = null) {
8+
if (minimumLogLevel != null)
9+
MinimumLogLevel = minimumLogLevel;
1010
}
1111

1212
public LogLevel MinimumLogLevel { get; set; }

Source/Platforms/NLog/ExceptionlessClientExtensions.cs

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,26 @@ public static EventBuilder CreateFromLogEvent(this ExceptionlessClient client, L
1717
builder.Target.Date = ev.TimeStamp;
1818
builder.SetSource(ev.LoggerName);
1919

20+
var properties = ev.Properties
21+
.Where(kvp => !_ignoredEventProperties.Contains(kvp.Key.ToString(), StringComparer.OrdinalIgnoreCase))
22+
.ToDictionary(kvp => kvp.Key.ToString(), kvp => kvp.Value, StringComparer.OrdinalIgnoreCase);
23+
24+
object value;
25+
if (properties.TryGetValue("@value", out value)) {
26+
try {
27+
builder.SetValue(Convert.ToDecimal(value));
28+
properties.Remove("@value");
29+
} catch (Exception) {}
30+
}
31+
32+
object stackingKey;
33+
if (properties.TryGetValue(Event.KnownDataKeys.ManualStackingInfo, out stackingKey)) {
34+
try {
35+
builder.SetManualStackingKey(stackingKey.ToString());
36+
properties.Remove(Event.KnownDataKeys.ManualStackingInfo);
37+
} catch (Exception) { }
38+
}
39+
2040
if (ev.Exception == null)
2141
builder.SetProperty(Event.KnownDataKeys.Level, ev.Level.Name);
2242

@@ -27,8 +47,8 @@ public static EventBuilder CreateFromLogEvent(this ExceptionlessClient client, L
2747
if (tagList.Count > 0)
2848
builder.AddTags(tagList.ToArray());
2949

30-
foreach (var p in ev.Properties.Where(kvp => !_ignoredEventProperties.Contains(kvp.Key.ToString(), StringComparer.OrdinalIgnoreCase)))
31-
builder.SetProperty(p.Key.ToString(), p.Value);
50+
foreach (var p in properties)
51+
builder.SetProperty(p.Key, p.Value);
3252

3353
return builder;
3454
}

Source/Platforms/NLog/ExceptionlessTarget.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System;
22
using System.Collections.Generic;
3+
using NLog;
34
using NLog.Common;
45
using NLog.Config;
56
using NLog.Targets;
@@ -36,6 +37,10 @@ protected override void Write(AsyncLogEventInfo info) {
3637
if (!_client.Configuration.IsValid)
3738
return;
3839

40+
LogLevel minLogLevel = LogLevel.FromOrdinal(_client.Configuration.Settings.GetMinLogLevel(info.LogEvent.LoggerName).Ordinal);
41+
if (info.LogEvent.Level < minLogLevel)
42+
return;
43+
3944
var builder = _client.CreateFromLogEvent(info.LogEvent);
4045
foreach (var field in Fields) {
4146
var renderedField = field.Layout.Render(info.LogEvent);

Source/Platforms/NLog/NLogExceptionlessLog.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ namespace Exceptionless.NLog {
88
public class NLogExceptionlessLog : IExceptionlessLog {
99
private readonly Logger _logger = LogManager.GetCurrentClassLogger();
1010

11-
public NLogExceptionlessLog(LogLevel? minimumLogLevel = null) {
12-
if (minimumLogLevel.HasValue)
13-
MinimumLogLevel = minimumLogLevel.Value;
11+
public NLogExceptionlessLog(LogLevel minimumLogLevel = null) {
12+
if (minimumLogLevel != null)
13+
MinimumLogLevel = minimumLogLevel;
1414
}
1515

1616
public LogLevel MinimumLogLevel { get; set; }

Source/Samples/SampleConsole/Program.cs

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -191,18 +191,16 @@ private static void StartDisplayingLogMessages() {
191191
}
192192

193193
private static ConsoleColor GetColor(InMemoryExceptionlessLog.LogEntry logEntry) {
194-
switch (logEntry.Level) {
195-
case LogLevel.Debug:
196-
return ConsoleColor.Gray;
197-
case LogLevel.Error:
198-
return ConsoleColor.Yellow;
199-
case LogLevel.Info:
200-
return ConsoleColor.White;
201-
case LogLevel.Trace:
202-
return ConsoleColor.DarkGray;
203-
case LogLevel.Warn:
204-
return ConsoleColor.Magenta;
205-
}
194+
if (logEntry.Level == LogLevel.Debug)
195+
return ConsoleColor.Gray;
196+
if (logEntry.Level == LogLevel.Error)
197+
return ConsoleColor.Yellow;
198+
if (logEntry.Level == LogLevel.Info)
199+
return ConsoleColor.White;
200+
if (logEntry.Level == LogLevel.Trace)
201+
return ConsoleColor.DarkGray;
202+
if (logEntry.Level == LogLevel.Warn)
203+
return ConsoleColor.Magenta;
206204

207205
return ConsoleColor.White;
208206
}

0 commit comments

Comments
 (0)