|
4 | 4 |
|
5 | 5 | namespace MySqlConnector.Logging;
|
6 | 6 |
|
| 7 | +/// <summary> |
| 8 | +/// Implements MySqlConnector logging using the Microsoft.Extensions.Logging abstraction. |
| 9 | +/// </summary> |
7 | 10 | public sealed class MicrosoftExtensionsLoggingLoggerProvider : IMySqlConnectorLoggerProvider
|
8 | 11 | {
|
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 | + } |
10 | 31 |
|
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)); |
12 | 38 |
|
13 | 39 | private sealed class MicrosoftExtensionsLoggingLogger : IMySqlConnectorLogger
|
14 | 40 | {
|
@@ -42,4 +68,5 @@ public void Log(MySqlConnectorLogLevel level, string message, object?[]? args =
|
42 | 68 | }
|
43 | 69 |
|
44 | 70 | readonly ILoggerFactory m_loggerFactory;
|
| 71 | + readonly string m_prefix; |
45 | 72 | }
|
0 commit comments