logtail: add Logger.SetEnabled to toggle uploads at runtime

Callers that need to turn logtail uploads on and off in response to
user preference or policy changes previously had no choice: the
package-level Disable is a one-way kill switch intended for the
controlplane DisableLogTail debug message, and requires a process
restart to undo.

Add a per-Logger disabled flag, toggled via SetEnabled, that drops
incoming entries without buffering while disabled. The process-wide
Disable still takes precedence, so a controlplane-issued kill switch
cannot be overridden by a client setting it back on.

To simplify https://github.com/tailscale/tailscale-android/pull/695

Updates #13174

Change-Id: I06e75bd719c851f5f837ca5b2d1e17f7c68355f0
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
Brad Fitzpatrick
2026-04-17 18:12:08 +00:00
committed by Brad Fitzpatrick
parent 8dda62cc24
commit 1fbb834dc3
3 changed files with 48 additions and 1 deletions
+2
View File
@@ -20,6 +20,8 @@ type Buffer any
func Disable() {}
func (*Logger) SetEnabled(enabled bool) {}
func NewLogger(cfg Config, logf tslogger.Logf) *Logger {
return &Logger{}
}