Skip to content

Commit 13235bb

Browse files
committed
Prefix the logger name by default. Fixes #1080
1 parent 154b9d1 commit 13235bb

File tree

1 file changed

+29
-2
lines changed

1 file changed

+29
-2
lines changed

src/MySqlConnector.Logging.Microsoft.Extensions.Logging/MicrosoftExtensionsLoggingLoggerProvider.cs

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,37 @@
44

55
namespace MySqlConnector.Logging;
66

7+
/// <summary>
8+
/// Implements MySqlConnector logging using the Microsoft.Extensions.Logging abstraction.
9+
/// </summary>
710
public sealed class MicrosoftExtensionsLoggingLoggerProvider : IMySqlConnectorLoggerProvider
811
{
9-
public MicrosoftExtensionsLoggingLoggerProvider(ILoggerFactory loggerFactory) => m_loggerFactory = loggerFactory;
12+
/// <summary>
13+
/// Initializes a new instance of the <see cref="MicrosoftExtensionsLoggingLoggerProvider"/>.
14+
/// </summary>
15+
/// <param name="loggerFactory">The logging factory to use.</param>
16+
public MicrosoftExtensionsLoggingLoggerProvider(ILoggerFactory loggerFactory)
17+
: this(loggerFactory, false)
18+
{
19+
}
20+
21+
/// <summary>
22+
/// Initializes a new instance of the <see cref="MicrosoftExtensionsLoggingLoggerProvider"/>.
23+
/// </summary>
24+
/// <param name="loggerFactory">The logging factory to use.</param>
25+
/// <param name="omitMySqlConnectorPrefix">True to omit the "MySqlConnector." prefix from logger names; this matches the default behavior prior to v2.1.0.</param>
26+
public MicrosoftExtensionsLoggingLoggerProvider(ILoggerFactory loggerFactory, bool omitMySqlConnectorPrefix)
27+
{
28+
m_loggerFactory = loggerFactory ?? throw new ArgumentNullException(nameof(loggerFactory));
29+
m_prefix = omitMySqlConnectorPrefix ? "" : "MySqlConnector.";
30+
}
1031

11-
public IMySqlConnectorLogger CreateLogger(string name) => new MicrosoftExtensionsLoggingLogger(m_loggerFactory.CreateLogger(name));
32+
/// <summary>
33+
/// Creates a new <see cref="IMySqlConnectorLogger"/> with the specified name.
34+
/// </summary>
35+
/// <param name="name">The logger name.</param>
36+
/// <returns>A <see cref="IMySqlConnectorLogger"/> that logs with the specified logger name.</returns>
37+
public IMySqlConnectorLogger CreateLogger(string name) => new MicrosoftExtensionsLoggingLogger(m_loggerFactory.CreateLogger(m_prefix + name));
1238

1339
private sealed class MicrosoftExtensionsLoggingLogger : IMySqlConnectorLogger
1440
{
@@ -42,4 +68,5 @@ public void Log(MySqlConnectorLogLevel level, string message, object?[]? args =
4268
}
4369

4470
readonly ILoggerFactory m_loggerFactory;
71+
readonly string m_prefix;
4572
}

0 commit comments

Comments
 (0)