feat(logger): add ForFile() auto-namespace helper, migrate 68 files - #9622
Conversation
…ew to logger.ForFile()
…exception comments
There was a problem hiding this comment.
Pull request overview
Adds automatic per-file logger namespaces, reducing maintenance while preserving intentional custom namespaces.
Changes:
- Introduces and tests
logger.ForFile(). - Migrates 68 matching logger declarations.
- Updates namespace exceptions and contributor guidance.
Show a summary per file
| File | Description |
|---|---|
internal/version/version.go |
Migrates version logger. |
internal/urlutil/domains.go |
Migrates domains logger. |
internal/tracing/provider.go |
Migrates tracing logger. |
internal/testutil/mcptest/driver.go |
Migrates test driver logger. |
internal/sys/docker.go |
Migrates Docker logger. |
internal/sys/container.go |
Migrates container logger. |
internal/server/unified.go |
Migrates unified-server logger. |
internal/server/tool_registry_helpers.go |
Migrates registry helper logger. |
internal/server/system_tools.go |
Migrates system-tools logger. |
internal/server/session.go |
Migrates session logger. |
internal/server/routed.go |
Migrates routed-server logger. |
internal/server/response_writer.go |
Migrates response-writer logger. |
internal/server/http_server.go |
Migrates primary HTTP logger; preserves transport namespace. |
internal/server/hmac.go |
Migrates HMAC logger. |
internal/server/health.go |
Migrates health logger. |
internal/server/handlers.go |
Migrates handlers logger. |
internal/server/guard_init.go |
Migrates guard initialization logger. |
internal/server/difc_log.go |
Migrates DIFC logger. |
internal/server/circuit_breaker.go |
Migrates circuit-breaker logger. |
internal/proxy/tls.go |
Migrates proxy TLS logger. |
internal/proxy/router.go |
Migrates router logger. |
internal/proxy/response_transform.go |
Migrates transform logger. |
internal/proxy/proxy.go |
Migrates proxy logger. |
internal/proxy/handler.go |
Migrates proxy handler logger. |
internal/proxy/graphql.go |
Migrates GraphQL logger. |
internal/proxy/graphql_rewrite.go |
Migrates rewrite logger. |
internal/oidc/provider.go |
Migrates OIDC logger. |
internal/middleware/jqschema.go |
Migrates middleware logger. |
internal/mcpresult/mcpresult.go |
Migrates result logger. |
internal/mcp/tool_result.go |
Migrates tool-result logger. |
internal/mcp/schema.go |
Migrates schema logger. |
internal/mcp/pagination.go |
Migrates pagination logger. |
internal/mcp/http_transport.go |
Migrates transport logger. |
internal/mcp/helpers.go |
Migrates MCP helpers logger. |
internal/mcp/connection.go |
Migrates connection logger. |
internal/mcp/connection_logging.go |
Migrates connection-log logger. |
internal/logger/logger.go |
Implements caller-derived logger namespaces. |
internal/logger/logger_test.go |
Tests derivation and DEBUG matching. |
internal/logger/logger_namespace_test.go |
Documents and trims custom exceptions. |
internal/launcher/launcher.go |
Migrates launcher logger. |
internal/httputil/tls.go |
Migrates HTTP TLS logger. |
internal/httputil/httputil.go |
Migrates HTTP utility logger. |
internal/guard/registry.go |
Migrates guard registry logger. |
internal/guard/pipeline.go |
Migrates guard pipeline logger. |
internal/guard/noop.go |
Migrates no-op guard logger. |
internal/guard/label_agent.go |
Migrates agent-label logger. |
internal/guard/context.go |
Migrates guard context logger. |
internal/githubhttp/visibility.go |
Migrates visibility logger. |
internal/githubhttp/collaborator.go |
Migrates collaborator logger. |
internal/githubhttp/client.go |
Migrates GitHub client logger. |
internal/envutil/github.go |
Migrates GitHub environment logger. |
internal/envutil/envutil.go |
Migrates environment utility logger. |
internal/envutil/envfile.go |
Migrates env-file logger. |
internal/difc/sink_server_ids.go |
Migrates sink logger. |
internal/difc/resource.go |
Migrates resource logger. |
internal/difc/reflect.go |
Migrates reflection logger. |
internal/difc/pipeline_decisions.go |
Migrates decision logger. |
internal/difc/path_labels.go |
Migrates path-label logger. |
internal/difc/labels.go |
Migrates labels logger. |
internal/difc/evaluator.go |
Migrates evaluator logger. |
internal/difc/capabilities.go |
Migrates capabilities logger. |
internal/difc/agent.go |
Migrates agent logger. |
internal/config/validation.go |
Migrates validation logger. |
internal/config/validation_schema.go |
Migrates schema-validation logger. |
internal/config/validation_env.go |
Migrates environment-validation logger. |
internal/config/guard_policy.go |
Migrates guard-policy logger. |
internal/config/config_tracing.go |
Migrates tracing-config logger. |
internal/config/config_stdin.go |
Migrates stdin-config logger. |
internal/cmd/root.go |
Migrates root-command logger. |
internal/cmd/proxy.go |
Migrates proxy-command logger. |
internal/auth/header.go |
Migrates header logger; preserves API-key namespace. |
CONTRIBUTING.md |
Documents preferred logger construction. |
AGENTS.md |
Updates agent logging guidance and examples. |
Review details
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Files reviewed: 73/73 changed files
- Comments generated: 0
- Review effort level: Medium
|
@copilot resolve conflicts and fix linting errors https://github.com/github/gh-aw-mcpg/actions/runs/29676284621/job/88213691378?pr=9622 |
Done in |
83 non-test Go files each hardcoded a
logger.New("pkg:file")string that had to match the file's path by convention, with the namespace audit test catching drift after the fact. This PR eliminates the string maintenance burden.Changes
logger.ForFile()— new helper ininternal/logger/logger.gothat derives"package:filename"automatically viaruntime.Caller(1), removing any string to typo or maintain:68 files migrated from
logger.New("pkg:file")tologger.ForFile()— all files where the existing namespace exactly matched whatForFile()would derive.13 files keep
logger.New()— files with intentionally custom namespaces (e.g.,"auth:apikey","server:transport","config:config") are preserved unchanged to avoid breaking existingDEBUG=filter configurations.logger_namespace_test.go— exception list trimmed (two entries updated where one logger per file was migrated and one was kept), with comments added explaining each intentional deviation.TestForFile/TestForFile_Enabled— cover namespace derivation andDEBUGpattern matching.AGENTS.md / CONTRIBUTING.md — updated to recommend
ForFile()as the default;logger.New()documented for intentional custom-namespace cases only.