Skip to content

Commit 7ae0762

Browse files
authored
Add an option to set DCP log file name suffix based on test name (#9088)
1 parent ffe115f commit 7ae0762

File tree

3 files changed

+12
-0
lines changed

3 files changed

+12
-0
lines changed

src/Aspire.Hosting/Dcp/DcpHost.cs

+4
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,10 @@ private void EnsureDcpHostRunning()
141141
loggingSocket.Listen(LoggingSocketConnectionBacklog);
142142

143143
dcpProcessSpec.EnvironmentVariables.Add("DCP_LOG_SOCKET", _locations.DcpLogSocket);
144+
if (!string.IsNullOrWhiteSpace(_dcpOptions.LogFileNameSuffix))
145+
{
146+
dcpProcessSpec.EnvironmentVariables.Add("DCP_LOG_FILE_NAME_SUFFIX", _dcpOptions.LogFileNameSuffix);
147+
}
144148

145149
_logProcessorTask = Task.Run(() => StartLoggingSocketAsync(loggingSocket));
146150
}

src/Aspire.Hosting/Dcp/DcpOptions.cs

+7
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,12 @@ internal sealed class DcpOptions
8888
/// before DcpExecutor.StopAsync() returns. Default is false (resources are cleaned up asynchronously).
8989
/// </summary>
9090
public bool WaitForResourceCleanup { get; set; }
91+
92+
/// <summary>
93+
/// Gets or sets the suffix to use for DCP log file names (applicable when verbose DCP logging is enabled).
94+
/// By default log file name suffix defaults to the current process ID.
95+
/// </summary>
96+
public string? LogFileNameSuffix { get; set; }
9197
}
9298

9399
internal class ValidateDcpOptions : IValidateOptions<DcpOptions>
@@ -190,6 +196,7 @@ public void Configure(DcpOptions options)
190196
options.WaitForResourceCleanup = dcpPublisherConfiguration.GetValue(nameof(options.WaitForResourceCleanup), options.WaitForResourceCleanup);
191197
options.ServiceStartupWatchTimeout = configuration.GetValue(KnownConfigNames.ServiceStartupWatchTimeout, KnownConfigNames.Legacy.ServiceStartupWatchTimeout, options.ServiceStartupWatchTimeout);
192198
options.ContainerRuntimeInitializationTimeout = dcpPublisherConfiguration.GetValue(nameof(options.ContainerRuntimeInitializationTimeout), options.ContainerRuntimeInitializationTimeout);
199+
options.LogFileNameSuffix = dcpPublisherConfiguration[nameof(options.LogFileNameSuffix)];
193200
}
194201

195202
private static string? GetMetadataValue(IEnumerable<AssemblyMetadataAttribute>? assemblyMetadata, string key)

tests/testproject/TestProject.AppHost/TestProgram.cs

+1
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ private TestProgram(
5454
builder.Configuration["DcpPublisher:ResourceNameSuffix"] = $"{Random.Shared.Next():x}";
5555
builder.Configuration["DcpPublisher:RandomizePorts"] = randomizePorts.ToString(CultureInfo.InvariantCulture);
5656
builder.Configuration["DcpPublisher:WaitForResourceCleanup"] = "true";
57+
builder.Configuration["DcpPublisher:LogFileNameSuffix"] = testName;
5758

5859
AppBuilder = builder;
5960

0 commit comments

Comments
 (0)