Skip to content

Commit a576962

Browse files
committed
Add nullable annotations to logging projects.
1 parent df84d79 commit a576962

File tree

8 files changed

+40
-43
lines changed

8 files changed

+40
-43
lines changed

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@ public sealed class MicrosoftExtensionsLoggingLoggerProvider : IMySqlConnectorLo
1010

1111
public IMySqlConnectorLogger CreateLogger(string name) => new MicrosoftExtensionsLoggingLogger(m_loggerFactory.CreateLogger(name));
1212

13-
private class MicrosoftExtensionsLoggingLogger : IMySqlConnectorLogger
13+
private sealed class MicrosoftExtensionsLoggingLogger : IMySqlConnectorLogger
1414
{
1515
public MicrosoftExtensionsLoggingLogger(ILogger logger) => m_logger = logger;
1616

1717
public bool IsEnabled(MySqlConnectorLogLevel level) => m_logger.IsEnabled(GetLevel(level));
1818

19-
public void Log(MySqlConnectorLogLevel level, string message, object[] args = null, Exception exception = null)
19+
public void Log(MySqlConnectorLogLevel level, string message, object?[]? args = null, Exception? exception = null)
2020
{
2121
if (args is null || args.Length == 0)
2222
m_logger.Log(GetLevel(level), 0, message, exception, s_getMessage);
@@ -36,7 +36,7 @@ public void Log(MySqlConnectorLogLevel level, string message, object[] args = nu
3636
};
3737

3838
static readonly Func<string, Exception, string> s_getMessage = (s, e) => s;
39-
static readonly Func<(string Message, object[] Args), Exception, string> s_messageFormatter = (s, e) => string.Format(CultureInfo.InvariantCulture, s.Message, s.Args);
39+
static readonly Func<(string Message, object?[] Args), Exception, string> s_messageFormatter = (s, e) => string.Format(CultureInfo.InvariantCulture, s.Message, s.Args);
4040

4141
readonly ILogger m_logger;
4242
}

src/MySqlConnector.Logging.Microsoft.Extensions.Logging/MySqlConnector.Logging.Microsoft.Extensions.Logging.csproj

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,10 @@
44
<TargetFrameworks>netstandard2.0</TargetFrameworks>
55
<Title>MySqlConnector Logging Adapter for Microsoft.Extensions.Logging</Title>
66
<Description>Writes MySqlConnector logging output to Microsoft.Extensions.Logging with one line of code.</Description>
7-
<Copyright>Copyright 2017 Bradley Grainger</Copyright>
7+
<Copyright>Copyright 2017–2020 Bradley Grainger</Copyright>
88
<Authors>Bradley Grainger</Authors>
99
<PackageTags>mysql;mysqlconnector;async;ado.net;database;netcore;logging</PackageTags>
10+
<Nullable>enable</Nullable>
1011
</PropertyGroup>
1112

1213
<ItemGroup>

src/MySqlConnector.Logging.NLog/MySqlConnector.Logging.NLog.csproj

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFrameworks>net45;net461;netstandard1.3;netstandard2.0</TargetFrameworks>
4+
<TargetFrameworks>net45;netstandard1.3;netstandard2.0</TargetFrameworks>
55
<Title>MySqlConnector Logging Adapter for NLog</Title>
66
<Description>Writes lightly-structured MySqlConnector logging output to NLog.</Description>
7-
<Copyright>Copyright 2018 Bradley Grainger</Copyright>
7+
<Copyright>Copyright 2018–2020 Bradley Grainger</Copyright>
88
<Authors>Rolf Kristensen</Authors>
99
<PackageTags>mysql;mysqlconnector;async;ado.net;database;netcore;NLog;logging</PackageTags>
10+
<Nullable>enable</Nullable>
1011
</PropertyGroup>
1112

1213
<ItemGroup>

src/MySqlConnector.Logging.NLog/NLogLoggerProvider.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@ public sealed class NLogLoggerProvider : IMySqlConnectorLoggerProvider
1010

1111
static readonly Type s_loggerType = typeof(NLogLogger);
1212

13-
private class NLogLogger : IMySqlConnectorLogger
13+
private sealed class NLogLogger : IMySqlConnectorLogger
1414
{
1515
public NLogLogger(Logger logger) => m_logger = logger;
1616

1717
public bool IsEnabled(MySqlConnectorLogLevel level) => m_logger.IsEnabled(GetLevel(level));
1818

19-
public void Log(MySqlConnectorLogLevel level, string message, object[] args = null, Exception exception = null)
19+
public void Log(MySqlConnectorLogLevel level, string message, object?[]? args = null, Exception? exception = null)
2020
{
2121
LogLevel logLevel = GetLevel(level);
2222
if (m_logger.IsEnabled(logLevel))

src/MySqlConnector.Logging.Serilog/MySqlConnector.Logging.Serilog.csproj

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFrameworks>net45;net461;netstandard1.3;netstandard2.0</TargetFrameworks>
4+
<TargetFrameworks>net45;netstandard1.3;netstandard2.0</TargetFrameworks>
55
<Title>MySqlConnector Logging Adapter for Serilog</Title>
66
<Description>Writes lightly-structured MySqlConnector logging output to Serilog.</Description>
7-
<Copyright>Copyright 2017 Bradley Grainger</Copyright>
7+
<Copyright>Copyright 2017–2020 Bradley Grainger</Copyright>
88
<Authors>Marc Lewandowski</Authors>
99
<PackageTags>mysql;mysqlconnector;async;ado.net;database;netcore;serilog;logging</PackageTags>
10+
<Nullable>enable</Nullable>
1011
</PropertyGroup>
1112

1213
<ItemGroup>

src/MySqlConnector.Logging.Serilog/SerilogLoggerProvider.cs

Lines changed: 22 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -5,36 +5,31 @@
55

66
namespace MySqlConnector.Logging
77
{
8-
public sealed class SerilogLoggerProvider : IMySqlConnectorLoggerProvider
9-
{
8+
public sealed class SerilogLoggerProvider : IMySqlConnectorLoggerProvider
9+
{
1010
public SerilogLoggerProvider() { }
1111

12-
public IMySqlConnectorLogger CreateLogger(string name)
13-
{
14-
return new SerilogLogger(name);
15-
}
16-
17-
private class SerilogLogger : IMySqlConnectorLogger
18-
{
19-
public SerilogLogger(string name)
20-
{
21-
m_name = name;
22-
m_logger = Serilog.Log.ForContext("SourceContext", "MySqlConnector." + name);
23-
}
24-
25-
public bool IsEnabled(MySqlConnectorLogLevel level) => m_logger.IsEnabled(GetLevel(level));
26-
27-
public void Log(MySqlConnectorLogLevel level, string message, object[] args = null, Exception exception = null)
28-
{
29-
if (args is null || args.Length == 0)
30-
m_logger.Write(GetLevel(level), exception, message);
31-
else
32-
{
12+
public IMySqlConnectorLogger CreateLogger(string name) => new SerilogLogger(name);
13+
14+
private sealed class SerilogLogger : IMySqlConnectorLogger
15+
{
16+
public SerilogLogger(string name) => m_logger = Serilog.Log.ForContext("SourceContext", "MySqlConnector." + name);
17+
18+
public bool IsEnabled(MySqlConnectorLogLevel level) => m_logger.IsEnabled(GetLevel(level));
19+
20+
public void Log(MySqlConnectorLogLevel level, string message, object?[]? args = null, Exception? exception = null)
21+
{
22+
if (args is null || args.Length == 0)
23+
{
24+
m_logger.Write(GetLevel(level), exception, message);
25+
}
26+
else
27+
{
3328
// rewrite message as template
3429
var template = tokenReplacer.Replace(message, "$1{MySql$2$3}$4");
3530
m_logger.Write(GetLevel(level), exception, template, args);
36-
}
37-
}
31+
}
32+
}
3833

3934
private static LogEventLevel GetLevel(MySqlConnectorLogLevel level) => level switch
4035
{
@@ -50,8 +45,6 @@ public void Log(MySqlConnectorLogLevel level, string message, object[] args = nu
5045
static readonly Regex tokenReplacer = new(@"((\w+)?\s?(?:=|:)?\s?'?)\{(?:\d+)(\:\w+)?\}('?)", RegexOptions.Compiled);
5146

5247
readonly ILogger m_logger;
53-
readonly string m_name;
54-
}
55-
56-
}
48+
}
49+
}
5750
}

src/MySqlConnector.Logging.log4net/Log4netLoggerProvider.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,13 @@ public sealed class Log4netLoggerProvider : IMySqlConnectorLoggerProvider
1313
static readonly Assembly s_loggerAssembly = typeof(Log4netLogger).GetTypeInfo().Assembly;
1414
static readonly Type s_loggerType = typeof(Log4netLogger);
1515

16-
private class Log4netLogger : IMySqlConnectorLogger
16+
private sealed class Log4netLogger : IMySqlConnectorLogger
1717
{
1818
public Log4netLogger(ILoggerWrapper log) => m_logger = log.Logger;
1919

2020
public bool IsEnabled(MySqlConnectorLogLevel level) => m_logger.IsEnabledFor(GetLevel(level));
2121

22-
public void Log(MySqlConnectorLogLevel level, string message, object[] args = null, Exception exception = null)
22+
public void Log(MySqlConnectorLogLevel level, string message, object?[]? args = null, Exception? exception = null)
2323
{
2424
if (args is null || args.Length == 0)
2525
m_logger.Log(s_loggerType, GetLevel(level), message, exception);

src/MySqlConnector.Logging.log4net/MySqlConnector.Logging.log4net.csproj

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFrameworks>net45;net461;netstandard1.3;netstandard2.0</TargetFrameworks>
4+
<TargetFrameworks>net45;netstandard1.3;netstandard2.0</TargetFrameworks>
55
<Title>MySqlConnector Logging Adapter for log4net</Title>
66
<Description>Writes MySqlConnector logging output to log4net with one line of code.</Description>
7-
<Copyright>Copyright 2017 Bradley Grainger</Copyright>
7+
<Copyright>Copyright 2017–2020 Bradley Grainger</Copyright>
88
<Authors>Bradley Grainger</Authors>
99
<PackageTags>mysql;mysqlconnector;async;ado.net;database;netcore;log4net;logging</PackageTags>
10+
<Nullable>enable</Nullable>
1011
</PropertyGroup>
1112

1213
<ItemGroup>

0 commit comments

Comments
 (0)