Skip to content

Make the level mapping routines public #141

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
May 21, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,28 @@
using Microsoft.Extensions.Logging;
using Serilog.Events;

// ReSharper disable RedundantCaseLabel

namespace Serilog.Extensions.Logging
{
static class LevelMapping
/// <summary>
/// Converts between Serilog and Microsoft.Extensions.Logging level enum values.
/// </summary>
public static class LevelConvert
{
/// <summary>
/// Convert <paramref name="logLevel"/> to the equivalent Serilog <see cref="LogEventLevel"/>.
/// </summary>
/// <param name="logLevel">A Microsoft.Extensions.Logging <see cref="LogLevel"/>.</param>
/// <returns>The Serilog equivalent of <paramref name="logLevel"/>.</returns>
/// <remarks>The <see cref="LogLevel.None"/> value has no Serilog equivalent. It is mapped to
/// <see cref="LogEventLevel.Fatal"/> as the closest approximation, but this has entirely
/// different semantics.</remarks>
public static LogEventLevel ToSerilogLevel(LogLevel logLevel)
{
switch (logLevel)
{
case LogLevel.None:
case LogLevel.Critical:
return LogEventLevel.Fatal;
case LogLevel.Error:
Expand All @@ -33,13 +47,17 @@ public static LogEventLevel ToSerilogLevel(LogLevel logLevel)
return LogEventLevel.Information;
case LogLevel.Debug:
return LogEventLevel.Debug;
// ReSharper disable once RedundantCaseLabel
case LogLevel.Trace:
default:
return LogEventLevel.Verbose;
}
}

/// <summary>
/// Convert <paramref name="logEventLevel"/> to the equivalent Microsoft.Extensions.Logging <see cref="LogLevel"/>.
/// </summary>
/// <param name="logEventLevel">A Serilog <see cref="LogEventLevel"/>.</param>
/// <returns>The Microsoft.Extensions.Logging equivalent of <paramref name="logEventLevel"/>.</returns>
public static LogLevel ToExtensionsLevel(LogEventLevel logEventLevel)
{
switch (logEventLevel)
Expand All @@ -54,7 +72,6 @@ public static LogLevel ToExtensionsLevel(LogEventLevel logEventLevel)
return LogLevel.Information;
case LogEventLevel.Debug:
return LogLevel.Debug;
// ReSharper disable once RedundantCaseLabel
case LogEventLevel.Verbose:
default:
return LogLevel.Trace;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ sourceContextProperty is ScalarValue sourceContextValue &&
categoryName = sourceContext;
}

var level = LevelMapping.ToExtensionsLevel(logEvent.Level);
var level = LevelConvert.ToExtensionsLevel(logEvent.Level);
var slv = new SerilogLogValues(logEvent.MessageTemplate, logEvent.Properties);

foreach (var provider in _providers.Providers)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ public SerilogLogger(

public bool IsEnabled(LogLevel logLevel)
{
return _logger.IsEnabled(LevelMapping.ToSerilogLevel(logLevel));
return _logger.IsEnabled(LevelConvert.ToSerilogLevel(logLevel));
}

public IDisposable BeginScope<TState>(TState state)
Expand All @@ -49,7 +49,7 @@ public IDisposable BeginScope<TState>(TState state)

public void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func<TState, Exception, string> formatter)
{
var level = LevelMapping.ToSerilogLevel(logLevel);
var level = LevelConvert.ToSerilogLevel(logLevel);
if (!_logger.IsEnabled(level))
{
return;
Expand Down