mirror of
https://github.com/nsnail/ns-ext.git
synced 2025-06-20 08:38:16 +08:00
refactor: ♻️ 2.0 (#3)
This commit is contained in:
86
src/backend/NSExt/Extensions/LoggerExtensions.cs
Normal file
86
src/backend/NSExt/Extensions/LoggerExtensions.cs
Normal file
@ -0,0 +1,86 @@
|
||||
// ReSharper disable TemplateIsNotCompileTimeConstantProblem
|
||||
|
||||
using System.Runtime.CompilerServices;
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
namespace NSExt.Extensions;
|
||||
|
||||
/// <summary>
|
||||
/// LoggerExtensions
|
||||
/// </summary>
|
||||
public static class LoggerExtensions
|
||||
{
|
||||
private const string _MESSAGE_S_THREAD_ID_CALLER_NAME_CALLER_FILE_PATH_CALLER_LINE_NUMBER
|
||||
= "{Message} <s:{CallerName}@{CallerFilePath}:{CallerLineNumber}>";
|
||||
|
||||
private static readonly Action<ILogger, string, string, string, string, Exception> _logDebug
|
||||
= LoggerMessage.Define<string, string, string, string>(LogLevel.Debug, default
|
||||
, _MESSAGE_S_THREAD_ID_CALLER_NAME_CALLER_FILE_PATH_CALLER_LINE_NUMBER);
|
||||
|
||||
private static readonly Action<ILogger, string, string, string, string, Exception> _logError
|
||||
= LoggerMessage.Define<string, string, string, string>(LogLevel.Error, default
|
||||
, _MESSAGE_S_THREAD_ID_CALLER_NAME_CALLER_FILE_PATH_CALLER_LINE_NUMBER);
|
||||
|
||||
private static readonly Action<ILogger, string, string, string, string, Exception> _logFatal
|
||||
= LoggerMessage.Define<string, string, string, string>(LogLevel.Critical, default
|
||||
, _MESSAGE_S_THREAD_ID_CALLER_NAME_CALLER_FILE_PATH_CALLER_LINE_NUMBER);
|
||||
|
||||
private static readonly Action<ILogger, string, string, string, string, Exception> _logInfo
|
||||
= LoggerMessage.Define<string, string, string, string>(LogLevel.Information, default
|
||||
, _MESSAGE_S_THREAD_ID_CALLER_NAME_CALLER_FILE_PATH_CALLER_LINE_NUMBER);
|
||||
|
||||
private static readonly Action<ILogger, string, string, string, string, Exception> _logWarn
|
||||
= LoggerMessage.Define<string, string, string, string>(LogLevel.Warning, default
|
||||
, _MESSAGE_S_THREAD_ID_CALLER_NAME_CALLER_FILE_PATH_CALLER_LINE_NUMBER);
|
||||
|
||||
/// <summary>
|
||||
/// Debug
|
||||
/// </summary>
|
||||
public static void Debug(this ILogger me, object message, [CallerMemberName] string callerName = null
|
||||
, [CallerFilePath] string callerFilePath = null, [CallerLineNumber] int callerLineNumber = 0)
|
||||
{
|
||||
_logDebug(me, message.ToString(), callerName, Path.GetFileName(callerFilePath)
|
||||
, callerLineNumber.ToString(CultureInfo.InvariantCulture), null);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Error
|
||||
/// </summary>
|
||||
public static void Error(this ILogger me, object message, [CallerMemberName] string callerName = null
|
||||
, [CallerFilePath] string callerFilePath = null, [CallerLineNumber] int callerLineNumber = 0)
|
||||
{
|
||||
_logError(me, message.ToString(), callerName, Path.GetFileName(callerFilePath)
|
||||
, callerLineNumber.ToString(CultureInfo.InvariantCulture), null);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Fatal
|
||||
/// </summary>
|
||||
public static void Fatal(this ILogger me, object message, Exception ex = null
|
||||
, [CallerMemberName] string callerName = null, [CallerFilePath] string callerFilePath = null
|
||||
, [CallerLineNumber] int callerLineNumber = 0)
|
||||
{
|
||||
_logFatal(me, message.ToString(), callerName, Path.GetFileName(callerFilePath)
|
||||
, callerLineNumber.ToString(CultureInfo.InvariantCulture), ex);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Info
|
||||
/// </summary>
|
||||
public static void Info(this ILogger me, object message, [CallerMemberName] string callerName = null
|
||||
, [CallerFilePath] string callerFilePath = null, [CallerLineNumber] int callerLineNumber = 0)
|
||||
{
|
||||
_logInfo(me, message.ToString(), callerName, Path.GetFileName(callerFilePath)
|
||||
, callerLineNumber.ToString(CultureInfo.InvariantCulture), null);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Warn
|
||||
/// </summary>
|
||||
public static void Warn(this ILogger me, object message, [CallerMemberName] string callerName = null
|
||||
, [CallerFilePath] string callerFilePath = null, [CallerLineNumber] int callerLineNumber = 0)
|
||||
{
|
||||
_logWarn(me, message.ToString(), callerName, Path.GetFileName(callerFilePath)
|
||||
, callerLineNumber.ToString(CultureInfo.InvariantCulture), null);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user