diff --git a/core/src/main/java/org/testcontainers/containers/GenericContainer.java b/core/src/main/java/org/testcontainers/containers/GenericContainer.java index 4d3778c63d1..d9ed5d2a252 100644 --- a/core/src/main/java/org/testcontainers/containers/GenericContainer.java +++ b/core/src/main/java/org/testcontainers/containers/GenericContainer.java @@ -325,19 +325,23 @@ protected void doStart() { configure(); - logger().debug("Starting container: {}", getDockerImageName()); + if (logger().isDebugEnabled()) { + logger().debug("Starting container: {}", getDockerImageName()); + } AtomicInteger attempt = new AtomicInteger(0); Unreliables.retryUntilSuccess( startupAttempts, () -> { - logger() - .debug( - "Trying to start container: {} (attempt {}/{})", - getDockerImageName(), - attempt.incrementAndGet(), - startupAttempts - ); + if (logger().isDebugEnabled()) { + logger() + .debug( + "Trying to start container: {} (attempt {}/{})", + getDockerImageName(), + attempt.incrementAndGet(), + startupAttempts + ); + } tryStart(); return true; } @@ -658,12 +662,12 @@ public void stop() { } /** - * Provide a logger that references the docker image name. + * Provide the shared logger for generic container lifecycle messages. * - * @return a logger that references the docker image name + * @return the shared generic container logger */ protected Logger logger() { - return DockerLoggerFactory.getLogger(this.getDockerImageName()); + return DockerLoggerFactory.getLogger("genericcontainer"); } /** diff --git a/core/src/test/java/org/testcontainers/containers/GenericContainerTest.java b/core/src/test/java/org/testcontainers/containers/GenericContainerTest.java index 37aac1b0af9..6a9bafab912 100644 --- a/core/src/test/java/org/testcontainers/containers/GenericContainerTest.java +++ b/core/src/test/java/org/testcontainers/containers/GenericContainerTest.java @@ -216,19 +216,22 @@ void testArchitectureCheck() { ListAppender listAppender = new ListAppender<>(); listAppender.start(); logger.addAppender(listAppender); - - container.start(); - - String regexMatch = "The architecture '\\S+' for image .*"; - assertThat(listAppender.list) - .describedAs( - "Received log list does not have a message matching '" + - regexMatch + - "': " + - listAppender.list.toString() - ) - .filteredOn(event -> event.getMessage().matches(regexMatch)) - .isNotEmpty(); + try { + container.start(); + + String regexMatch = "The architecture '\\S+' for image .*"; + assertThat(listAppender.list) + .describedAs( + "Received log list does not have a message matching '" + + regexMatch + + "': " + + listAppender.list.toString() + ) + .filteredOn(event -> event.getMessage().matches(regexMatch)) + .isNotEmpty(); + } finally { + logger.detachAppender(listAppender); + } } }