Skip to content

Commit 942ffc4

Browse files
committed
fix: reduce debugger logspam
1 parent b83acb1 commit 942ffc4

File tree

4 files changed

+91
-87
lines changed

4 files changed

+91
-87
lines changed

Intersect (Core)/Logging/Log.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ static Log()
4747
{
4848
Formatters = ImmutableList.Create(new DefaultFormatter()) ?? throw new InvalidOperationException(),
4949
LogLevel = LogConfiguration.Default.LogLevel,
50-
Outputs = outputs
50+
Outputs = outputs,
5151
}
5252
);
5353
}
Lines changed: 44 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,76 +1,65 @@
11
using Microsoft.Extensions.Logging;
22

3-
namespace Intersect.Server.Database
3+
namespace Intersect.Server.Database;
4+
5+
public partial class DbLogger : ILogger
46
{
7+
private readonly Intersect.Logging.Logger _intersectLogger;
58

6-
public partial class DbLogger : ILogger
9+
public DbLogger(Intersect.Logging.Logger intersectLogger)
710
{
11+
_intersectLogger = intersectLogger;
12+
}
813

9-
private Intersect.Logging.Logger _intersectLogger;
10-
11-
public DbLogger(Intersect.Logging.Logger intersectLogger)
12-
{
13-
_intersectLogger = intersectLogger;
14-
}
14+
public IDisposable BeginScope<TState>(TState state) => null;
1515

16-
public IDisposable BeginScope<TState>(TState state)
17-
{
18-
return null;
19-
}
16+
public bool IsEnabled(LogLevel logLevel) => true;
2017

21-
public bool IsEnabled(LogLevel logLevel)
18+
public void Log<TState>(
19+
LogLevel logLevel,
20+
EventId eventId,
21+
TState state,
22+
Exception exception,
23+
Func<TState, Exception, string> formatter
24+
)
25+
{
26+
if (!IsEnabled(logLevel))
2227
{
23-
return true;
28+
return;
2429
}
2530

26-
public void Log<TState>(
27-
LogLevel logLevel,
28-
EventId eventId,
29-
TState state,
30-
Exception exception,
31-
Func<TState, Exception, string> formatter
32-
)
31+
var msg = $"{eventId.Id} - {formatter(state, exception)}";
32+
switch (logLevel)
3333
{
34-
if (!IsEnabled(logLevel))
35-
{
36-
return;
37-
}
34+
case LogLevel.Trace:
35+
_intersectLogger.Trace(msg);
36+
break;
3837

39-
if (_intersectLogger != null)
40-
{
41-
var msg = $"{eventId.Id} - {formatter(state, exception)}";
42-
switch (logLevel)
43-
{
44-
case LogLevel.Trace:
45-
_intersectLogger.Trace(msg);
38+
case LogLevel.Debug:
39+
_intersectLogger.Debug(msg);
40+
break;
4641

47-
break;
48-
case LogLevel.Debug:
49-
_intersectLogger.Debug(msg);
42+
case LogLevel.Information:
43+
_intersectLogger.Info(msg);
44+
break;
5045

51-
break;
52-
case LogLevel.Information:
53-
_intersectLogger.Info(msg);
46+
case LogLevel.Warning:
47+
_intersectLogger.Warn(msg);
48+
break;
5449

55-
break;
56-
case LogLevel.Warning:
57-
_intersectLogger.Warn(msg);
50+
case LogLevel.Error:
51+
_intersectLogger.Error(msg);
52+
break;
5853

59-
break;
60-
case LogLevel.Error:
61-
_intersectLogger.Error(msg);
54+
case LogLevel.Critical:
55+
_intersectLogger.Error(msg);
56+
break;
6257

63-
break;
64-
case LogLevel.Critical:
65-
_intersectLogger.Error(msg);
58+
case LogLevel.None:
59+
break;
6660

67-
break;
68-
case LogLevel.None:
69-
break;
70-
}
71-
}
61+
default:
62+
throw new ArgumentOutOfRangeException(nameof(logLevel), logLevel, null);
7263
}
73-
7464
}
75-
76-
}
65+
}
Lines changed: 15 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,23 @@
11
using Microsoft.Extensions.Logging;
22

3-
namespace Intersect.Server.Database
4-
{
5-
6-
public partial class DbLoggerProvider : ILoggerProvider
7-
{
8-
9-
private Intersect.Logging.Logger _intersectLogger;
10-
11-
private DbLogger _logger;
3+
namespace Intersect.Server.Database;
124

13-
public DbLoggerProvider(Intersect.Logging.Logger intersectLogger)
14-
{
15-
_intersectLogger = intersectLogger;
16-
}
5+
public sealed partial class DbLoggerProvider : ILoggerProvider
6+
{
7+
private readonly Intersect.Logging.Logger _intersectLogger;
178

18-
public ILogger CreateLogger(string categoryName)
19-
{
20-
if (_logger == null)
21-
{
22-
_logger = new DbLogger(_intersectLogger);
23-
}
9+
private DbLogger? _logger;
2410

25-
return _logger;
26-
}
11+
public DbLoggerProvider(Intersect.Logging.Logger intersectLogger)
12+
{
13+
_intersectLogger = intersectLogger;
14+
}
2715

28-
public void Dispose()
29-
{
30-
_logger = null;
31-
}
16+
public ILogger CreateLogger(string categoryName) => _logger ??= new DbLogger(_intersectLogger);
3217

18+
public void Dispose()
19+
{
20+
GC.SuppressFinalize(this);
21+
_logger = default;
3322
}
34-
35-
}
23+
}
Lines changed: 31 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,52 @@
1+
using System.Collections.Immutable;
2+
using System.Diagnostics;
3+
using System.Reflection;
14
using Intersect.Logging;
5+
using Intersect.Logging.Formatting;
6+
using Intersect.Logging.Output;
27
using Intersect.Reflection;
38
using Microsoft.Extensions.Logging;
49
using ILogger = Microsoft.Extensions.Logging.ILogger;
10+
using IntersectLogLevel = Intersect.Logging.LogLevel;
511

612
namespace Intersect.Server.Database;
713

814
internal sealed class IntersectLoggerFactory : ILoggerFactory
915
{
10-
private readonly DbLoggerProvider _loggerProvider = new(Log.Default);
16+
private static string ExecutableName => Path.GetFileNameWithoutExtension(
17+
Process.GetCurrentProcess().MainModule?.FileName ?? Assembly.GetExecutingAssembly().GetName().Name
18+
);
1119

12-
public void Dispose()
20+
private readonly DbLoggerProvider _loggerProvider;
21+
22+
internal IntersectLoggerFactory()
1323
{
24+
var outputs = ImmutableList.Create<ILogOutput>(
25+
new FileOutput($"db-{ExecutableName}.log"),
26+
new FileOutput($"errors-{ExecutableName}.log", IntersectLogLevel.Error),
27+
new ConciseConsoleOutput(Debugger.IsAttached ? IntersectLogLevel.Warn : IntersectLogLevel.Error)
28+
);
29+
30+
_loggerProvider = new DbLoggerProvider(
31+
new Logger(
32+
new LogConfiguration
33+
{
34+
Formatters = ImmutableList.Create(new DefaultFormatter()),
35+
LogLevel = IntersectLogLevel.Debug,
36+
Outputs = outputs,
37+
}
38+
)
39+
);
1440
}
1541

1642
public void AddProvider(ILoggerProvider provider)
1743
{
1844
Log.Warn($"Tried to add provider but this is not implemented: {provider.GetFullishName()}");
1945
}
2046

21-
public ILogger CreateLogger(string categoryName)
47+
public ILogger CreateLogger(string categoryName) => _loggerProvider.CreateLogger(categoryName);
48+
49+
public void Dispose()
2250
{
23-
return _loggerProvider.CreateLogger(categoryName);
2451
}
2552
}

0 commit comments

Comments
 (0)