From ee66c7b611ec4b526da7315d90242d5595094926 Mon Sep 17 00:00:00 2001 From: maliming Date: Tue, 9 Dec 2025 14:12:48 +0800 Subject: [PATCH 1/4] Add logging to TenantResolver for tenant resolution --- .../Volo/Abp/MultiTenancy/TenantResolver.cs | 30 ++++++++++++++----- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantResolver.cs b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantResolver.cs index 4351ef62bb..ce45a9bf87 100644 --- a/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantResolver.cs +++ b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantResolver.cs @@ -1,6 +1,8 @@ using System; using System.Threading.Tasks; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Logging.Abstractions; using Microsoft.Extensions.Options; using Volo.Abp.DependencyInjection; @@ -8,25 +10,31 @@ namespace Volo.Abp.MultiTenancy; public class TenantResolver : ITenantResolver, ITransientDependency { - private readonly IServiceProvider _serviceProvider; - private readonly AbpTenantResolveOptions _options; + public ILogger Logger { get; set; } + + protected IServiceProvider ServiceProvider { get; } + protected AbpTenantResolveOptions Options { get; } public TenantResolver(IOptions options, IServiceProvider serviceProvider) { - _serviceProvider = serviceProvider; - _options = options.Value; + Logger = NullLogger.Instance; + + ServiceProvider = serviceProvider; + Options = options.Value; } public virtual async Task ResolveTenantIdOrNameAsync() { var result = new TenantResolveResult(); - using (var serviceScope = _serviceProvider.CreateScope()) + Logger.LogDebug("Starting resolving tenant..."); + using (var serviceScope = ServiceProvider.CreateScope()) { var context = new TenantResolveContext(serviceScope.ServiceProvider); - foreach (var tenantResolver in _options.TenantResolvers) + foreach (var tenantResolver in Options.TenantResolvers) { + Logger.LogDebug($"Trying to resolve tenant through '{tenantResolver.Name}'..."); await tenantResolver.ResolveAsync(context); result.AppliedResolvers.Add(tenantResolver.Name); @@ -34,15 +42,21 @@ public class TenantResolver : ITenantResolver, ITransientDependency if (context.HasResolvedTenantOrHost()) { result.TenantIdOrName = context.TenantIdOrName; + Logger.LogDebug($"Tenant resolved by '{tenantResolver.Name}' as '{result.TenantIdOrName ?? "Host"}'."); break; } } } - if (result.TenantIdOrName.IsNullOrEmpty() && !string.IsNullOrWhiteSpace(_options.FallbackTenant)) + if (result.TenantIdOrName.IsNullOrEmpty() && !string.IsNullOrWhiteSpace(Options.FallbackTenant)) { - result.TenantIdOrName = _options.FallbackTenant; + result.TenantIdOrName = Options.FallbackTenant; result.AppliedResolvers.Add(TenantResolverNames.FallbackTenant); + Logger.LogDebug($"No tenant resolved. Using fallback tenant as '{result.TenantIdOrName}'."); + } + else if (result.TenantIdOrName.IsNullOrEmpty()) + { + Logger.LogDebug("No tenant resolved."); } return result; From 22aed1bd3afbdb9899b4ccb4d1bb6f05ce34220f Mon Sep 17 00:00:00 2001 From: Ma Liming Date: Tue, 9 Dec 2025 14:24:56 +0800 Subject: [PATCH 2/4] Update framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantResolver.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../Volo/Abp/MultiTenancy/TenantResolver.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantResolver.cs b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantResolver.cs index ce45a9bf87..e97d437b45 100644 --- a/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantResolver.cs +++ b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantResolver.cs @@ -34,7 +34,7 @@ public class TenantResolver : ITenantResolver, ITransientDependency foreach (var tenantResolver in Options.TenantResolvers) { - Logger.LogDebug($"Trying to resolve tenant through '{tenantResolver.Name}'..."); + Logger.LogDebug("Trying to resolve tenant through '{TenantResolverName}'...", tenantResolver.Name); await tenantResolver.ResolveAsync(context); result.AppliedResolvers.Add(tenantResolver.Name); From d8f68bab831dfe60a16130aa03ecd2833203efed Mon Sep 17 00:00:00 2001 From: Ma Liming Date: Tue, 9 Dec 2025 14:25:02 +0800 Subject: [PATCH 3/4] Update framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantResolver.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../Volo/Abp/MultiTenancy/TenantResolver.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantResolver.cs b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantResolver.cs index e97d437b45..563e39e9cc 100644 --- a/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantResolver.cs +++ b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantResolver.cs @@ -42,7 +42,7 @@ public class TenantResolver : ITenantResolver, ITransientDependency if (context.HasResolvedTenantOrHost()) { result.TenantIdOrName = context.TenantIdOrName; - Logger.LogDebug($"Tenant resolved by '{tenantResolver.Name}' as '{result.TenantIdOrName ?? "Host"}'."); + Logger.LogDebug("Tenant resolved by '{TenantResolverName}' as '{TenantIdOrName}'.", tenantResolver.Name, result.TenantIdOrName ?? "Host"); break; } } From e3e87c0c9d8a7375c95dda49377f33b2477fc9c8 Mon Sep 17 00:00:00 2001 From: Ma Liming Date: Tue, 9 Dec 2025 14:25:09 +0800 Subject: [PATCH 4/4] Update framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantResolver.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../Volo/Abp/MultiTenancy/TenantResolver.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantResolver.cs b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantResolver.cs index 563e39e9cc..602540dd03 100644 --- a/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantResolver.cs +++ b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantResolver.cs @@ -52,7 +52,7 @@ public class TenantResolver : ITenantResolver, ITransientDependency { result.TenantIdOrName = Options.FallbackTenant; result.AppliedResolvers.Add(TenantResolverNames.FallbackTenant); - Logger.LogDebug($"No tenant resolved. Using fallback tenant as '{result.TenantIdOrName}'."); + Logger.LogDebug("No tenant resolved. Using fallback tenant as '{FallbackTenant}'.", result.TenantIdOrName); } else if (result.TenantIdOrName.IsNullOrEmpty()) {