diff --git a/framework/src/Volo.Abp.Core/Microsoft/Extensions/Logging/AbpLoggerExtensions.cs b/framework/src/Volo.Abp.Core/Microsoft/Extensions/Logging/AbpLoggerExtensions.cs index 972fb3f92e..a9dbe57edb 100644 --- a/framework/src/Volo.Abp.Core/Microsoft/Extensions/Logging/AbpLoggerExtensions.cs +++ b/framework/src/Volo.Abp.Core/Microsoft/Extensions/Logging/AbpLoggerExtensions.cs @@ -100,6 +100,7 @@ public static class AbpLoggerExtensions } private const int MaxDataValueLength = 4096; + private const string TruncationSuffix = "...(truncated)"; private static string FormatDataValue(object? value) { @@ -119,7 +120,7 @@ public static class AbpLoggerExtensions var json = JsonSerializer.Serialize(value); if (json.Length > MaxDataValueLength) { - return json.Substring(0, MaxDataValueLength) + "...(truncated)"; + return json.Substring(0, MaxDataValueLength - TruncationSuffix.Length) + TruncationSuffix; } return json; diff --git a/framework/test/Volo.Abp.Core.Tests/Microsoft/Extensions/Logging/AbpLoggerExtensions_Tests.cs b/framework/test/Volo.Abp.Core.Tests/Microsoft/Extensions/Logging/AbpLoggerExtensions_Tests.cs index a4c52a2e6f..8e49afe16d 100644 --- a/framework/test/Volo.Abp.Core.Tests/Microsoft/Extensions/Logging/AbpLoggerExtensions_Tests.cs +++ b/framework/test/Volo.Abp.Core.Tests/Microsoft/Extensions/Logging/AbpLoggerExtensions_Tests.cs @@ -145,7 +145,8 @@ public class AbpLoggerExtensions_Tests logger.LogException(exception); logger.LastLoggedMessage.ShouldNotBeNull(); - logger.LastLoggedMessage.ShouldContain("BadObject = "); + logger.LastLoggedMessage.ShouldContain("BadObject = SelfRef:Loop"); + logger.LastLoggedMessage.ShouldNotContain("\"Name\""); } [Fact] @@ -172,6 +173,7 @@ public class AbpLoggerExtensions_Tests private class SelfReferencingObject { public string Name { get; set; } = default!; + public override string ToString() => $"SelfRef:{Name}"; public SelfReferencingObject? Self { get; set; } }