perf: 优化 log 的使用方式,通过 autofac + NullLogger 配合使用。

main
NoahLan 6 months ago
parent 9b5f19c02f
commit 8790954b9a

@ -1,4 +1,5 @@
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Abstractions;
using Newtonsoft.Json; using Newtonsoft.Json;
using NPin.Framework.SettingManagement.Domain; using NPin.Framework.SettingManagement.Domain;
using NPin.Framework.Upms.Domain.Settings; using NPin.Framework.Upms.Domain.Settings;
@ -12,25 +13,25 @@ namespace NPin.Framework.Upms.Domain.Managers;
public class SmsManager : DomainService public class SmsManager : DomainService
{ {
private readonly ILogger<SmsManager> _logger; public ILogger<SmsManager> Logger { get; set; }
private readonly ISettingManager _settingManager; private readonly ISettingManager _settingManager;
private readonly IEnumerable<ISms> _smsProviders; private readonly IEnumerable<ISms> _smsProviders;
public SmsManager(ILogger<SmsManager> logger, ISettingManager settingManager, IEnumerable<ISms> smsProviders) public SmsManager(ISettingManager settingManager, IEnumerable<ISms> smsProviders)
{ {
_logger = logger; Logger = NullLogger<SmsManager>.Instance;
_settingManager = settingManager; _settingManager = settingManager;
_smsProviders = smsProviders; _smsProviders = smsProviders;
} }
public async Task<SmsConfigModel> GetSmsConfigModelAsync() public async Task<SmsConfigModel> GetSmsConfigModelAsync()
{ {
var configJson = await _settingManager.GetOrNullUpmsAsync(ConfigConst.SmsConfigModelKey); var configJson = await _settingManager.GetOrNullUpmsAsync(ConfigKeyConst.SmsConfigModel);
var settingsJson = await _settingManager.GetOrNullUpmsAsync(ConfigConst.SmsSettingsKey); var settingsJson = await _settingManager.GetOrNullUpmsAsync(ConfigKeyConst.SmsSettings);
var providersJson = await _settingManager.GetOrNullUpmsAsync(ConfigConst.SmsProvidersKey); var providersJson = await _settingManager.GetOrNullUpmsAsync(ConfigKeyConst.SmsProviders);
var templateJson = await _settingManager.GetOrNullUpmsAsync(ConfigConst.SmsTemplatesKey); var templateJson = await _settingManager.GetOrNullUpmsAsync(ConfigKeyConst.SmsTemplates);
var ret = JsonConvert.DeserializeObject<SmsConfigModel>(configJson ?? string.Empty) ?? new SmsConfigModel(); var ret = JsonConvert.DeserializeObject<SmsConfigModel>(configJson ?? string.Empty) ?? new SmsConfigModel();
@ -71,7 +72,7 @@ public class SmsManager : DomainService
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"短信发送失败: {ex.Message}"); Logger.LogError(ex, $"短信发送失败: {ex.Message}");
throw new UserFriendlyException($"短信发送失败: {ex.Message}"); throw new UserFriendlyException($"短信发送失败: {ex.Message}");
} }
} }

@ -2,6 +2,7 @@
using AlibabaCloud.SDK.Dysmsapi20170525; using AlibabaCloud.SDK.Dysmsapi20170525;
using AlibabaCloud.SDK.Dysmsapi20170525.Models; using AlibabaCloud.SDK.Dysmsapi20170525.Models;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Abstractions;
using Newtonsoft.Json; using Newtonsoft.Json;
using NPin.Framework.Upms.Domain.Shared.Enums; using NPin.Framework.Upms.Domain.Shared.Enums;
using NPin.Framework.Upms.Domain.Shared.Model; using NPin.Framework.Upms.Domain.Shared.Model;
@ -11,11 +12,11 @@ namespace NPin.Framework.Upms.Domain.Sms.Handler;
public class AliyunSmsHandler : ISms, ISingletonDependency public class AliyunSmsHandler : ISms, ISingletonDependency
{ {
private readonly ILogger<AliyunSmsHandler> _logger; public ILogger<AliyunSmsHandler> Logger { get; set; }
public AliyunSmsHandler(ILogger<AliyunSmsHandler> logger) public AliyunSmsHandler()
{ {
_logger = logger; Logger = NullLogger<AliyunSmsHandler>.Instance;
} }
public SmsProviderTypeEnum ProviderType => SmsProviderTypeEnum.Aliyun; public SmsProviderTypeEnum ProviderType => SmsProviderTypeEnum.Aliyun;
@ -37,7 +38,7 @@ public class AliyunSmsHandler : ISms, ISingletonDependency
var response = await client.SendSmsAsync(sendSmsRequest); var response = await client.SendSmsAsync(sendSmsRequest);
// TODO 判断结果 // TODO 判断结果
_logger.LogDebug(response.ToString()); Logger.LogDebug(response.ToString());
} }
private Client CreateClient(SmsProvider provider) private Client CreateClient(SmsProvider provider)

@ -1,4 +1,5 @@
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Abstractions;
using NPin.Framework.Upms.Domain.Shared.Enums; using NPin.Framework.Upms.Domain.Shared.Enums;
using NPin.Framework.Upms.Domain.Shared.Model; using NPin.Framework.Upms.Domain.Shared.Model;
using TencentCloud.Common; using TencentCloud.Common;
@ -11,11 +12,11 @@ namespace NPin.Framework.Upms.Domain.Sms.Handler;
public class TencentSmsHandler : ISms, ISingletonDependency public class TencentSmsHandler : ISms, ISingletonDependency
{ {
private readonly ILogger<AliyunSmsHandler> _logger; public ILogger<TencentSmsHandler> Logger { get; set; }
public TencentSmsHandler(ILogger<AliyunSmsHandler> logger) public TencentSmsHandler()
{ {
_logger = logger; Logger = NullLogger<TencentSmsHandler>.Instance;
} }
public SmsProviderTypeEnum ProviderType => SmsProviderTypeEnum.Tencent; public SmsProviderTypeEnum ProviderType => SmsProviderTypeEnum.Tencent;
@ -37,7 +38,7 @@ public class TencentSmsHandler : ISms, ISingletonDependency
var response = await client.SendSms(sendSmsRequest); var response = await client.SendSms(sendSmsRequest);
// TODO 判断结果 // TODO 判断结果
_logger.LogDebug(response.ToString()); Logger.LogDebug(response.ToString());
} }
private SmsClient CreateClient(SmsProvider provider) private SmsClient CreateClient(SmsProvider provider)

Loading…
Cancel
Save