#0023 整理项目结构

This commit is contained in:
zhengxuan.zhang
2026-03-15 00:24:02 +08:00
parent dc35faabf1
commit 1b1b0872c7
43 changed files with 303 additions and 220 deletions
@@ -0,0 +1,139 @@
using System;
using Serilog;
using XP.Common.Logging.Interfaces;
namespace XplorePlane.Services
{
/// <summary>
/// 日志服务适配器
/// 将 Serilog ILogger 适配为 XplorePlane.Common.ILoggerService 接口
/// </summary>
public class LoggerServiceAdapter : ILoggerService
{
private readonly ILogger _logger;
private readonly string _moduleName;
/// <summary>
/// 构造函数(使用全局 Logger)
/// </summary>
public LoggerServiceAdapter() : this(Log.Logger, null)
{
}
/// <summary>
/// 构造函数(指定 Serilog Logger
/// </summary>
public LoggerServiceAdapter(ILogger logger) : this(logger, null)
{
}
/// <summary>
/// 私有构造函数(用于创建带模块名的实例)
/// </summary>
private LoggerServiceAdapter(ILogger logger, string moduleName)
{
_logger = logger ?? throw new ArgumentNullException(nameof(logger));
_moduleName = moduleName;
}
/// <summary>
/// 为指定模块创建日志器(使用泛型自动推断类型名)
/// </summary>
public ILoggerService ForModule<T>()
{
var typeName = typeof(T).FullName ?? typeof(T).Name;
var contextLogger = _logger.ForContext("SourceContext", typeName);
return new LoggerServiceAdapter(contextLogger, typeName);
}
/// <summary>
/// 为指定模块创建日志器(手动指定模块名)
/// </summary>
public ILoggerService ForModule(string moduleName)
{
if (string.IsNullOrWhiteSpace(moduleName))
throw new ArgumentException("模块名不能为空", nameof(moduleName));
var contextLogger = _logger.ForContext("SourceContext", moduleName);
return new LoggerServiceAdapter(contextLogger, moduleName);
}
/// <summary>
/// 获取当前日志器
/// </summary>
private ILogger GetLogger()
{
return _logger;
}
public void Debug(string message)
{
GetLogger().Debug(message);
}
public void Debug(string messageTemplate, params object[] propertyValues)
{
GetLogger().Debug(messageTemplate, propertyValues);
}
public void Info(string message)
{
GetLogger().Information(message);
}
public void Info(string messageTemplate, params object[] propertyValues)
{
GetLogger().Information(messageTemplate, propertyValues);
}
public void Warn(string message)
{
GetLogger().Warning(message);
}
public void Warn(string messageTemplate, params object[] propertyValues)
{
GetLogger().Warning(messageTemplate, propertyValues);
}
public void Error(string message)
{
GetLogger().Error(message);
}
public void Error(string messageTemplate, params object[] propertyValues)
{
GetLogger().Error(messageTemplate, propertyValues);
}
public void Error(Exception exception, string message)
{
GetLogger().Error(exception, message);
}
public void Error(Exception exception, string messageTemplate, params object[] propertyValues)
{
GetLogger().Error(exception, messageTemplate, propertyValues);
}
public void Fatal(string message)
{
GetLogger().Fatal(message);
}
public void Fatal(string messageTemplate, params object[] propertyValues)
{
GetLogger().Fatal(messageTemplate, propertyValues);
}
public void Fatal(Exception exception, string message)
{
GetLogger().Fatal(exception, message);
}
public void Fatal(Exception exception, string messageTemplate, params object[] propertyValues)
{
GetLogger().Fatal(exception, messageTemplate, propertyValues);
}
}
}