Skip to content

Commit a1f2126

Browse files
committed
chore: Defer container ID truncation in logging
1 parent a4c0b58 commit a1f2126

3 files changed

Lines changed: 47 additions & 37 deletions

File tree

build/Build.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
3-
<TargetFramework>net9.0</TargetFramework>
3+
<TargetFramework>net10.0</TargetFramework>
44
<OutputType>Exe</OutputType>
55
<SignAssembly>false</SignAssembly>
66
<RunWorkingDirectory>$(MSBuildProjectDirectory)/..</RunWorkingDirectory>

build/Program.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ public static class Program
55
public static int Main(string[] args)
66
{
77
return new CakeHost()
8-
.InstallTool(new Uri("nuget:?package=dotnet-sonarscanner&version=10.1.2"))
8+
.InstallTool(new Uri("nuget:?package=dotnet-sonarscanner&version=11.2.1"))
99
.UseContext<BuildContext>()
1010
.UseLifetime<BuildLifetime>()
1111
.Run(args);

src/Testcontainers/Logging.cs

Lines changed: 45 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -7,49 +7,64 @@ namespace DotNet.Testcontainers
77
using DotNet.Testcontainers.Images;
88
using Microsoft.Extensions.Logging;
99

10+
internal readonly struct TruncatedId
11+
{
12+
private readonly string _id;
13+
14+
public TruncatedId(string id)
15+
{
16+
_id = id;
17+
}
18+
19+
public override string ToString()
20+
{
21+
return _id.Substring(0, Math.Min(12, _id.Length));
22+
}
23+
}
24+
1025
internal static partial class Logging
1126
{
1227
[LoggerMessage(Level = LogLevel.Information, Message = "Pattern {IgnorePattern} added to the regex cache")]
1328
private static partial void IgnorePatternAddedCore(ILogger logger, Regex ignorePattern);
1429

1530
[LoggerMessage(Level = LogLevel.Information, Message = "Docker container {Id} created")]
16-
private static partial void DockerContainerCreatedCore(ILogger logger, string id);
31+
private static partial void DockerContainerCreatedCore(ILogger logger, TruncatedId id);
1732

1833
[LoggerMessage(Level = LogLevel.Information, Message = "Start Docker container {Id}")]
19-
private static partial void StartDockerContainerCore(ILogger logger, string id);
34+
private static partial void StartDockerContainerCore(ILogger logger, TruncatedId id);
2035

2136
[LoggerMessage(Level = LogLevel.Information, Message = "Stop Docker container {Id}")]
22-
private static partial void StopDockerContainerCore(ILogger logger, string id);
37+
private static partial void StopDockerContainerCore(ILogger logger, TruncatedId id);
2338

2439
[LoggerMessage(Level = LogLevel.Information, Message = "Pause Docker container {Id}")]
25-
private static partial void PauseDockerContainerCore(ILogger logger, string id);
40+
private static partial void PauseDockerContainerCore(ILogger logger, TruncatedId id);
2641

2742
[LoggerMessage(Level = LogLevel.Information, Message = "Unpause Docker container {Id}")]
28-
private static partial void UnpauseDockerContainerCore(ILogger logger, string id);
43+
private static partial void UnpauseDockerContainerCore(ILogger logger, TruncatedId id);
2944

3045
[LoggerMessage(Level = LogLevel.Information, Message = "Delete Docker container {Id}")]
31-
private static partial void DeleteDockerContainerCore(ILogger logger, string id);
46+
private static partial void DeleteDockerContainerCore(ILogger logger, TruncatedId id);
3247

3348
[LoggerMessage(Level = LogLevel.Information, Message = "Wait for Docker container {Id} to complete readiness checks")]
34-
private static partial void StartReadinessCheckCore(ILogger logger, string id);
49+
private static partial void StartReadinessCheckCore(ILogger logger, TruncatedId id);
3550

3651
[LoggerMessage(Level = LogLevel.Information, Message = "Docker container {Id} ready")]
37-
private static partial void CompleteReadinessCheckCore(ILogger logger, string id);
52+
private static partial void CompleteReadinessCheckCore(ILogger logger, TruncatedId id);
3853

3954
[LoggerMessage(Level = LogLevel.Information, Message = "Copy tar archive to container: Content length: {Length} byte(s), Docker container: {Id}")]
40-
private static partial void CopyArchiveToDockerContainerCore(ILogger logger, long length, string id);
55+
private static partial void CopyArchiveToDockerContainerCore(ILogger logger, long length, TruncatedId id);
4156

4257
[LoggerMessage(Level = LogLevel.Information, Message = "Read \"{Path}\" from Docker container {Id}")]
43-
private static partial void ReadArchiveFromDockerContainerCore(ILogger logger, string path, string id);
58+
private static partial void ReadArchiveFromDockerContainerCore(ILogger logger, string path, TruncatedId id);
4459

4560
[LoggerMessage(Level = LogLevel.Information, Message = "Attach {OutputConsumer} at Docker container {Id}")]
46-
private static partial void AttachToDockerContainerCore(ILogger logger, Type outputConsumer, string id);
61+
private static partial void AttachToDockerContainerCore(ILogger logger, Type outputConsumer, TruncatedId id);
4762

4863
[LoggerMessage(Level = LogLevel.Information, Message = "Connect Docker container {ContainerId} to Docker network {NetworkId}")]
49-
private static partial void ConnectToDockerNetworkCore(ILogger logger, string containerId, string networkId);
64+
private static partial void ConnectToDockerNetworkCore(ILogger logger, TruncatedId containerId, TruncatedId networkId);
5065

5166
[LoggerMessage(Level = LogLevel.Information, Message = "Execute \"{Command}\" at Docker container {Id}")]
52-
private static partial void ExecuteCommandInDockerContainerCore(ILogger logger, string command, string id);
67+
private static partial void ExecuteCommandInDockerContainerCore(ILogger logger, string command, TruncatedId id);
5368

5469
[LoggerMessage(Level = LogLevel.Information, Message = "Docker image {FullName} created")]
5570
private static partial void DockerImageCreatedCore(ILogger logger, string fullName);
@@ -61,10 +76,10 @@ internal static partial class Logging
6176
private static partial void DeleteDockerImageCore(ILogger logger, string fullName);
6277

6378
[LoggerMessage(Level = LogLevel.Information, Message = "Docker network {Id} created")]
64-
private static partial void DockerNetworkCreatedCore(ILogger logger, string id);
79+
private static partial void DockerNetworkCreatedCore(ILogger logger, TruncatedId id);
6580

6681
[LoggerMessage(Level = LogLevel.Information, Message = "Delete Docker network {Id}")]
67-
private static partial void DeleteDockerNetworkCore(ILogger logger, string id);
82+
private static partial void DeleteDockerNetworkCore(ILogger logger, TruncatedId id);
6883

6984
[LoggerMessage(Level = LogLevel.Information, Message = "Docker volume {Name} created")]
7085
private static partial void DockerVolumeCreatedCore(ILogger logger, string name);
@@ -130,67 +145,67 @@ public static void IgnorePatternAdded(this ILogger logger, Regex ignorePattern)
130145

131146
public static void DockerContainerCreated(this ILogger logger, string id)
132147
{
133-
DockerContainerCreatedCore(logger, TruncId(id));
148+
DockerContainerCreatedCore(logger, new TruncatedId(id));
134149
}
135150

136151
public static void StartDockerContainer(this ILogger logger, string id)
137152
{
138-
StartDockerContainerCore(logger, TruncId(id));
153+
StartDockerContainerCore(logger, new TruncatedId(id));
139154
}
140155

141156
public static void StopDockerContainer(this ILogger logger, string id)
142157
{
143-
StopDockerContainerCore(logger, TruncId(id));
158+
StopDockerContainerCore(logger, new TruncatedId(id));
144159
}
145160

146161
public static void PauseDockerContainer(this ILogger logger, string id)
147162
{
148-
PauseDockerContainerCore(logger, TruncId(id));
163+
PauseDockerContainerCore(logger, new TruncatedId(id));
149164
}
150165

151166
public static void UnpauseDockerContainer(this ILogger logger, string id)
152167
{
153-
UnpauseDockerContainerCore(logger, TruncId(id));
168+
UnpauseDockerContainerCore(logger, new TruncatedId(id));
154169
}
155170

156171
public static void DeleteDockerContainer(this ILogger logger, string id)
157172
{
158-
DeleteDockerContainerCore(logger, TruncId(id));
173+
DeleteDockerContainerCore(logger, new TruncatedId(id));
159174
}
160175

161176
public static void StartReadinessCheck(this ILogger logger, string id)
162177
{
163-
StartReadinessCheckCore(logger, TruncId(id));
178+
StartReadinessCheckCore(logger, new TruncatedId(id));
164179
}
165180

166181
public static void CompleteReadinessCheck(this ILogger logger, string id)
167182
{
168-
CompleteReadinessCheckCore(logger, TruncId(id));
183+
CompleteReadinessCheckCore(logger, new TruncatedId(id));
169184
}
170185

171186
public static void CopyArchiveToDockerContainer(this ILogger logger, string id, long length)
172187
{
173-
CopyArchiveToDockerContainerCore(logger, length, TruncId(id));
188+
CopyArchiveToDockerContainerCore(logger, length, new TruncatedId(id));
174189
}
175190

176191
public static void ReadArchiveFromDockerContainer(this ILogger logger, string id, string path)
177192
{
178-
ReadArchiveFromDockerContainerCore(logger, path, TruncId(id));
193+
ReadArchiveFromDockerContainerCore(logger, path, new TruncatedId(id));
179194
}
180195

181196
public static void AttachToDockerContainer(this ILogger logger, string id, Type type)
182197
{
183-
AttachToDockerContainerCore(logger, type, TruncId(id));
198+
AttachToDockerContainerCore(logger, type, new TruncatedId(id));
184199
}
185200

186201
public static void ConnectToDockerNetwork(this ILogger logger, string networkId, string containerId)
187202
{
188-
ConnectToDockerNetworkCore(logger, TruncId(containerId), TruncId(networkId));
203+
ConnectToDockerNetworkCore(logger, new TruncatedId(containerId), new TruncatedId(networkId));
189204
}
190205

191206
public static void ExecuteCommandInDockerContainer(this ILogger logger, string id, IEnumerable<string> command)
192207
{
193-
ExecuteCommandInDockerContainerCore(logger, string.Join(" ", command), TruncId(id));
208+
ExecuteCommandInDockerContainerCore(logger, string.Join(" ", command), new TruncatedId(id));
194209
}
195210

196211
public static void DockerImageCreated(this ILogger logger, IImage image)
@@ -210,12 +225,12 @@ public static void DeleteDockerImage(this ILogger logger, IImage image)
210225

211226
public static void DockerNetworkCreated(this ILogger logger, string id)
212227
{
213-
DockerNetworkCreatedCore(logger, TruncId(id));
228+
DockerNetworkCreatedCore(logger, new TruncatedId(id));
214229
}
215230

216231
public static void DeleteDockerNetwork(this ILogger logger, string id)
217232
{
218-
DeleteDockerNetworkCore(logger, TruncId(id));
233+
DeleteDockerNetworkCore(logger, new TruncatedId(id));
219234
}
220235

221236
public static void DockerVolumeCreated(this ILogger logger, string name)
@@ -314,10 +329,5 @@ public static void ReusableResourceNotFound(this ILogger logger)
314329
{
315330
ReusableResourceNotFoundCore(logger);
316331
}
317-
318-
private static string TruncId(string id)
319-
{
320-
return id.Substring(0, Math.Min(12, id.Length));
321-
}
322332
}
323333
}

0 commit comments

Comments
 (0)