mirror of
https://github.com/github/codeql.git
synced 2026-08-02 16:32:58 +02:00
The standard-library structured logger `log/slog` (Go 1.21+) was not modeled, so `go/log-injection` and `go/clear-text-logging` were blind to any code that logs through it. Model its logging functions and `*slog.Logger` methods — `Debug`, `Info`, `Warn`, `Error`, their `Context` variants, and `Log`/`LogAttrs` — as `log-injection` sinks (the kind that feeds `LoggerCall`, powering both queries). Adds `log/slog` cases to the `LoggerCall` library test. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
30 lines
2.2 KiB
YAML
30 lines
2.2 KiB
YAML
extensions:
|
|
- addsTo:
|
|
pack: codeql/go-all
|
|
extensible: sinkModel
|
|
data:
|
|
# Package-level convenience functions (msg string, args ...any).
|
|
- ["log/slog", "", False, "Debug", "", "", "Argument[0..1]", "log-injection", "manual"]
|
|
- ["log/slog", "", False, "Info", "", "", "Argument[0..1]", "log-injection", "manual"]
|
|
- ["log/slog", "", False, "Warn", "", "", "Argument[0..1]", "log-injection", "manual"]
|
|
- ["log/slog", "", False, "Error", "", "", "Argument[0..1]", "log-injection", "manual"]
|
|
# Context variants (ctx, msg string, args ...any).
|
|
- ["log/slog", "", False, "DebugContext", "", "", "Argument[1..2]", "log-injection", "manual"]
|
|
- ["log/slog", "", False, "InfoContext", "", "", "Argument[1..2]", "log-injection", "manual"]
|
|
- ["log/slog", "", False, "WarnContext", "", "", "Argument[1..2]", "log-injection", "manual"]
|
|
- ["log/slog", "", False, "ErrorContext", "", "", "Argument[1..2]", "log-injection", "manual"]
|
|
# Log/LogAttrs (ctx, level, msg string, args/attrs ...).
|
|
- ["log/slog", "", False, "Log", "", "", "Argument[2..3]", "log-injection", "manual"]
|
|
- ["log/slog", "", False, "LogAttrs", "", "", "Argument[2..3]", "log-injection", "manual"]
|
|
# Methods on *slog.Logger.
|
|
- ["log/slog", "Logger", True, "Debug", "", "", "Argument[0..1]", "log-injection", "manual"]
|
|
- ["log/slog", "Logger", True, "Info", "", "", "Argument[0..1]", "log-injection", "manual"]
|
|
- ["log/slog", "Logger", True, "Warn", "", "", "Argument[0..1]", "log-injection", "manual"]
|
|
- ["log/slog", "Logger", True, "Error", "", "", "Argument[0..1]", "log-injection", "manual"]
|
|
- ["log/slog", "Logger", True, "DebugContext", "", "", "Argument[1..2]", "log-injection", "manual"]
|
|
- ["log/slog", "Logger", True, "InfoContext", "", "", "Argument[1..2]", "log-injection", "manual"]
|
|
- ["log/slog", "Logger", True, "WarnContext", "", "", "Argument[1..2]", "log-injection", "manual"]
|
|
- ["log/slog", "Logger", True, "ErrorContext", "", "", "Argument[1..2]", "log-injection", "manual"]
|
|
- ["log/slog", "Logger", True, "Log", "", "", "Argument[2..3]", "log-injection", "manual"]
|
|
- ["log/slog", "Logger", True, "LogAttrs", "", "", "Argument[2..3]", "log-injection", "manual"]
|