Testcontainers for Go is a Go package that makes it simple to create and clean up container-based dependencies for automated integration/smoke tests. The clean, easy-to-use API enables developers to programmatically define containers that should be run as part of a test and clean up those resources when the test is done.
Part of these logs are able to be suppressed by WithLogger() as like:
// need to implement no op logger because there are no exported implementation.
type noopLogger struct{}
func (n noopLogger) Printf(format string, v ...interface{}) {
// NOOP
}
...
testcontainers.WithLogger(&noopLogger{})
But some logs are still emitted.(attached as "Relevant log output")
I have finally needed to override testcontainers.Logger global variable as like:
testcontainers.Logger = &noopLogger{}
I think it is not intuitive behavior, and there should be an easier way to fix this.
Relevant log output
2024/11/05 19:08:24 github.com/testcontainers/testcontainers-go - Connected to docker:
Server Version: 27.1.1
API Version: 1.46
Operating System: Docker Desktop
Total Memory: 7839 MB
Labels:
com.docker.desktop.address=unix:///Users/apstndb/Library/Containers/com.docker.docker/Data/docker-cli.sock
Testcontainers for Go Version: v0.34.0
Resolved Docker Host: unix:///var/run/docker.sock
Resolved Docker Socket Path: /var/run/docker.sock
Test SessionID: cbde03b675d4e638d0c164e7724ae475f973cf2f2c6762b4b284b553d05e3612
Test ProcessID: 95b332b0-992e-45b5-b494-fea5cc02cc6a
Testcontainers version
0.34.0
Using the latest Testcontainers version?
Yes
Host OS
macOS
Host arch
ARM
Go version
1.23.2
Docker version
Client: Version: 27.1.1 API version: 1.46 Go version: go1.21.12 Git commit: 6312585 Built: Tue Jul 23 19:54:12 2024 OS/Arch: darwin/arm64 Context: desktop-linux
Server: Docker Desktop 4.33.0 (160616) Engine: Version: 27.1.1 API version: 1.46 (minimum version 1.24) Go version: go1.21.12 Git commit: cc13f95 Built: Tue Jul 23 19:57:14 2024 OS/Arch: linux/arm64 Experimental: false containerd: Version: 1.7.19 GitCommit: 2bf793ef6dc9a18e00cb12efb64355c2c9d5eb41 runc: Version: 1.7.19 GitCommit: v1.1.13-0-g58aa920 docker-init: Version: 0.19.0 GitCommit: de40ad0
Docker info
Client: Version: 27.1.1 Context: desktop-linux Debug Mode: false Plugins: buildx: Docker Buildx (Docker Inc.) Version: v0.16.1-desktop.1 Path: /Users/apstndb/.docker/cli-plugins/docker-buildx compose: Docker Compose (Docker Inc.) Version: v2.29.1-desktop.1 Path: /Users/apstndb/.docker/cli-plugins/docker-compose debug: Get a shell into any image or container (Docker Inc.) Version: 0.0.34 Path: /Users/apstndb/.docker/cli-plugins/docker-debug desktop: Docker Desktop commands (Alpha) (Docker Inc.) Version: v0.0.14 Path: /Users/apstndb/.docker/cli-plugins/docker-desktop dev: Docker Dev Environments (Docker Inc.) Version: v0.1.2 Path: /Users/apstndb/.docker/cli-plugins/docker-dev extension: Manages Docker extensions (Docker Inc.) Version: v0.2.25 Path: /Users/apstndb/.docker/cli-plugins/docker-extension feedback: Provide feedback, right in your terminal! (Docker Inc.) Version: v1.0.5 Path: /Users/apstndb/.docker/cli-plugins/docker-feedback init: Creates Docker-related starter files for your project (Docker Inc.) Version: v1.3.0 Path: /Users/apstndb/.docker/cli-plugins/docker-init sbom: View the packaged-based Software Bill Of Materials (SBOM) for an image (Anchore Inc.) Version: 0.6.0 Path: /Users/apstndb/.docker/cli-plugins/docker-sbom scout: Docker Scout (Docker Inc.) Version: v1.11.0 Path: /Users/apstndb/.docker/cli-plugins/docker-scout
Server: Containers: 3 Running: 3 Paused: 0 Stopped: 0 Images: 17 Server Version: 27.1.1 Storage Driver: overlay2 Backing Filesystem: extfs Supports d_type: true Using metacopy: false Native Overlay Diff: true userxattr: false Logging Driver: json-file Cgroup Driver: cgroupfs Cgroup Version: 2 Plugins: Volume: local Network: bridge host ipvlan macvlan null overlay Log: awslogs fluentd gcplogs gelf journald json-file local splunk syslog Swarm: inactive Runtimes: io.containerd.runc.v2 runc Default Runtime: runc Init Binary: docker-init containerd version: 2bf793ef6dc9a18e00cb12efb64355c2c9d5eb41 runc version: v1.1.13-0-g58aa920 init version: de40ad0 Security Options: seccomp Profile: unconfined cgroupns Kernel Version: 6.10.0-linuxkit Operating System: Docker Desktop OSType: linux Architecture: aarch64 CPUs: 8 Total Memory: 7.655GiB Name: docker-desktop ID: 55defb00-489f-4e5d-8f0c-4ade953f95db Docker Root Dir: /var/lib/docker Debug Mode: false HTTP Proxy: http.docker.internal:3128 HTTPS Proxy: http.docker.internal:3128 No Proxy: hubproxy.docker.internal Labels: com.docker.desktop.address=unix:///Users/apstndb/Library/Containers/com.docker.docker/Data/docker-cli.sock Experimental: false Insecure Registries: hubproxy.docker.internal:5555 127.0.0.0/8 Live Restore Enabled: false
What happened?
Background I want to use testcontainers outside of
go test
, in order to launch CLI with Cloud Spanner Emulator container. https://github.com/apstndb/spanner-mycli?tab=readme-ov-file#embedded-cloud-spanner-emulatorI have noticed
-v
flag is handled by testcontainers to control detail logs. (https://github.com/testcontainers/testcontainers-go/blob/ac572ca322318772acade1c801b0cdb6de0c3f8f/logger.go#L13-L18) That is unexpected behaviour for me so I try to suppress their logs, but I have noticed it is not easy.Part of these logs are able to be suppressed by
WithLogger()
as like:But some logs are still emitted.(attached as "Relevant log output")
I have finally needed to override
testcontainers.Logger
global variable as like:I think it is not intuitive behavior, and there should be an easier way to fix this.
Relevant log output
2024/11/05 19:08:24 github.com/testcontainers/testcontainers-go - Connected to docker: Server Version: 27.1.1 API Version: 1.46 Operating System: Docker Desktop Total Memory: 7839 MB Labels: com.docker.desktop.address=unix:///Users/apstndb/Library/Containers/com.docker.docker/Data/docker-cli.sock Testcontainers for Go Version: v0.34.0 Resolved Docker Host: unix:///var/run/docker.sock Resolved Docker Socket Path: /var/run/docker.sock Test SessionID: cbde03b675d4e638d0c164e7724ae475f973cf2f2c6762b4b284b553d05e3612 Test ProcessID: 95b332b0-992e-45b5-b494-fea5cc02cc6a
Additional information
No response