chore: Cleanup unused transport log level

Remove the unused --transport-loglevel flag and its legacy aliases and
environment variables. The dedicated transport logger was never used for
log emission, so remove its construction and plumbing through tunnel
configuration, the supervisor, and the connection observer.
This commit is contained in:
Devin Carr
2026-09-08 17:11:49 -07:00
parent 1ab229d1dd
commit a78eeecb56
12 changed files with 22 additions and 46 deletions
-8
View File
@@ -31,14 +31,6 @@ func ConfigureLoggingFlags(shouldHide bool) []cli.Flag {
EnvVars: []string{"TUNNEL_LOGLEVEL"},
Hidden: shouldHide,
}),
altsrc.NewStringFlag(&cli.StringFlag{
Name: flags.TransportLogLevel,
Aliases: []string{"proto-loglevel"}, // This flag used to be called proto-loglevel
Value: "info",
Usage: "Transport logging level(previously called protocol logging level) {debug, info, warn, error, fatal}",
EnvVars: []string{"TUNNEL_PROTO_LOGLEVEL", "TUNNEL_TRANSPORT_LOGLEVEL"},
Hidden: shouldHide,
}),
altsrc.NewStringFlag(&cli.StringFlag{
Name: flags.LogFile,
Usage: "Save application log to this file for reporting issues.",
-3
View File
@@ -135,9 +135,6 @@ const (
// LogLevelSSH is the command line flag for the cloudflared ssh logging level
LogLevelSSH = "log-level"
// TransportLogLevel is the command line flag for the transport logging level
TransportLogLevel = "transport-loglevel"
// LogFile is the command line flag to define the file where application logs will be stored
LogFile = "logfile"
+2 -5
View File
@@ -113,7 +113,6 @@ var (
"proxy-address",
"proxy-port",
cfdflags.LogLevel,
cfdflags.TransportLogLevel,
cfdflags.LogFile,
cfdflags.LogDirectory,
cfdflags.TraceOutput,
@@ -397,9 +396,7 @@ func StartServer(
return fmt.Errorf("namedTunnel is nil")
}
logTransport := logger.CreateTransportLoggerFromContext(c, logger.EnableTerminalLog)
observer := connection.NewObserver(log, logTransport)
observer := connection.NewObserver(log)
// Send Quick Tunnel URL to UI if applicable
quickTunnelURL := namedTunnel.QuickTunnelUrl
@@ -407,7 +404,7 @@ func StartServer(
observer.SendURL(quickTunnelURL)
}
tunnelConfig, orchestratorConfig, err := prepareTunnelConfig(ctx, c, info, log, logTransport, observer, namedTunnel)
tunnelConfig, orchestratorConfig, err := prepareTunnelConfig(ctx, c, info, log, observer, namedTunnel)
if err != nil {
log.Err(err).Msg("Couldn't start tunnel")
return err
+1 -3
View File
@@ -46,7 +46,6 @@ var (
flags.Retries,
flags.Protocol,
flags.LogLevel,
flags.TransportLogLevel,
flags.OriginCert,
flags.Metrics,
flags.MetricsUpdateFreq,
@@ -114,7 +113,7 @@ func prepareTunnelConfig(
ctx context.Context,
c *cli.Context,
info *cliutil.BuildInfo,
log, logTransport *zerolog.Logger,
log *zerolog.Logger,
observer *connection.Observer,
namedTunnel *connection.TunnelProperties,
) (*supervisor.TunnelConfig, *orchestration.Config, error) {
@@ -235,7 +234,6 @@ func prepareTunnelConfig(
LBPool: c.String(flags.LBPool),
Tags: tags,
Log: log,
LogTransport: logTransport,
Observer: observer,
ReportedVersion: info.Version(),
// Note TUN-3758 , we use Int because UInt is not supported with altsrc
+4 -4
View File
@@ -33,7 +33,7 @@ func newTestHTTP2Connection() (*HTTP2Connection, net.Conn) {
edgeConn, cfdConn := net.Pipe()
connIndex := uint8(0)
log := zerolog.Nop()
obs := NewObserver(&log, &log)
obs := NewObserver(&log)
controlStream := NewControlStream(
obs,
mockConnectedFuse{},
@@ -363,7 +363,7 @@ func TestServeControlStream(t *testing.T) {
unregistered: make(chan struct{}),
}
obs := NewObserver(&log, &log)
obs := NewObserver(&log)
controlStream := NewControlStream(
obs,
mockConnectedFuse{},
@@ -417,7 +417,7 @@ func TestFailRegistration(t *testing.T) {
unregistered: make(chan struct{}),
}
obs := NewObserver(&log, &log)
obs := NewObserver(&log)
controlStream := NewControlStream(
obs,
mockConnectedFuse{},
@@ -466,7 +466,7 @@ func TestGracefulShutdownHTTP2(t *testing.T) {
events := &eventCollectorSink{}
shutdownC := make(chan struct{})
obs := NewObserver(&log, &log)
obs := NewObserver(&log)
obs.RegisterSink(events)
controlStream := NewControlStream(
obs,
+1 -3
View File
@@ -20,7 +20,6 @@ const (
type Observer struct {
log *zerolog.Logger
logTransport *zerolog.Logger
metrics *tunnelMetrics
tunnelEventChan chan Event
addSinkChan chan EventSink
@@ -30,10 +29,9 @@ type EventSink interface {
OnTunnelEvent(event Event)
}
func NewObserver(log, logTransport *zerolog.Logger) *Observer {
func NewObserver(log *zerolog.Logger) *Observer {
o := &Observer{
log: log,
logTransport: logTransport,
metrics: newTunnelMetrics(),
tunnelEventChan: make(chan Event, observerChannelBufferSize),
addSinkChan: make(chan EventSink, observerChannelBufferSize),
+9 -7
View File
@@ -1,6 +1,7 @@
package connection
import (
"runtime"
"strconv"
"sync"
"testing"
@@ -9,22 +10,23 @@ import (
"github.com/prometheus/client_golang/prometheus"
dto "github.com/prometheus/client_model/go"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestSendUrl(t *testing.T) {
observer := NewObserver(&log, &log)
observer := NewObserver(&log)
observer.SendURL("my-url.com")
assert.Equal(t, 1.0, getCounterValue(t, observer.metrics.userHostnamesCounts, "https://my-url.com"))
assert.InEpsilon(t, 1.0, getCounterValue(t, observer.metrics.userHostnamesCounts, "https://my-url.com"), 0.001)
observer.SendURL("https://another-long-one.com")
assert.Equal(t, 1.0, getCounterValue(t, observer.metrics.userHostnamesCounts, "https://another-long-one.com"))
assert.InEpsilon(t, 1.0, getCounterValue(t, observer.metrics.userHostnamesCounts, "https://another-long-one.com"), 0.001)
}
func getCounterValue(t *testing.T, metric *prometheus.CounterVec, val string) float64 {
var m = &dto.Metric{}
err := metric.WithLabelValues(val).Write(m)
assert.NoError(t, err)
require.NoError(t, err)
return m.Counter.GetValue()
}
@@ -59,16 +61,16 @@ func TestRegisterServerLocation(t *testing.T) {
id := strconv.Itoa(i)
assert.Equal(t, "AUS", m.oldServerLocations[id])
}
}
func TestObserverEventsDontBlock(t *testing.T) {
observer := NewObserver(&log, &log)
observer := NewObserver(&log)
var mu sync.Mutex
observer.RegisterSink(EventSinkFunc(func(_ Event) {
// callback will block if lock is already held
mu.Lock()
mu.Unlock()
defer mu.Unlock()
runtime.Gosched()
}))
timeout := time.AfterFunc(5*time.Second, func() {
+1 -1
View File
@@ -225,7 +225,7 @@ func TestControlStreamClassifiesDuplicateRegistration(t *testing.T) {
shouldFail: errors.New(DuplicateConnectionError),
}
controlStream := NewControlStream(
NewObserver(&log, &log),
NewObserver(&log),
mockConnectedFuse{},
&TunnelProperties{},
0,
+2 -6
View File
@@ -128,10 +128,6 @@ func newZerolog(loggerConfig *Config) *zerolog.Logger {
return &log
}
func CreateTransportLoggerFromContext(c *cli.Context, disableTerminal bool) *zerolog.Logger {
return createFromContext(c, cfdflags.TransportLogLevel, cfdflags.LogDirectory, disableTerminal)
}
func CreateLoggerFromContext(c *cli.Context, disableTerminal bool) *zerolog.Logger {
return createFromContext(c, cfdflags.LogLevel, cfdflags.LogDirectory, disableTerminal)
}
@@ -216,7 +212,7 @@ func createFileWriter(config FileConfig) (io.Writer, error) {
fullpath := config.Fullpath()
// Try to open the existing file
logFile, err := os.OpenFile(fullpath, os.O_APPEND|os.O_WRONLY, filePermMode)
logFile, err := os.OpenFile(fullpath, os.O_APPEND|os.O_WRONLY, filePermMode) //nolint:gosec // Log file path is provided by the configured FileConfig.
if err != nil {
// If the existing file wasn't found, or couldn't be opened, just ignore
// it and recreate a new one.
@@ -246,7 +242,7 @@ func createDirFile(config FileConfig) (io.Writer, error) {
mode := os.FileMode(filePermMode)
fullPath := filepath.Join(config.Dirname, config.Filename)
logFile, err := os.OpenFile(fullPath, os.O_CREATE|os.O_WRONLY|os.O_APPEND, mode)
logFile, err := os.OpenFile(fullPath, os.O_CREATE|os.O_WRONLY|os.O_APPEND, mode) //nolint:gosec // Log file path is constructed from the configured FileConfig.
if err != nil {
return nil, fmt.Errorf("unable to create a new logfile: %s", err)
}
+1 -4
View File
@@ -8,7 +8,6 @@ import (
"github.com/prometheus/client_golang/prometheus"
"github.com/quic-go/quic-go"
"github.com/rs/zerolog"
"github.com/cloudflare/cloudflared/connection"
"github.com/cloudflare/cloudflared/edgediscovery"
@@ -41,8 +40,7 @@ type Supervisor struct {
nextConnectedIndex int
nextConnectedSignal chan struct{}
log *ConnAwareLogger
logTransport *zerolog.Logger
log *ConnAwareLogger
gracefulShutdownC <-chan struct{}
}
@@ -100,7 +98,6 @@ func NewSupervisor(config *TunnelConfig, orchestrator *orchestration.Orchestrato
tunnelsConnecting: map[int]chan struct{}{},
tunnelsProtocolFallback: map[int]*protocolFallback{},
log: log,
logTransport: config.LogTransport,
gracefulShutdownC: gracefulShutdownC,
}, nil
}
-1
View File
@@ -53,7 +53,6 @@ type TunnelConfig struct {
LBPool string
Tags []pogs.Tag
Log *zerolog.Logger
LogTransport *zerolog.Logger
Observer *connection.Observer
ReportedVersion string
Retries uint
+1 -1
View File
@@ -280,7 +280,7 @@ func (s *scriptedTunnelServer) Serve(_ context.Context, _ uint8, _ *protocolFall
func newTestSupervisor(t *testing.T, server TunnelServer) *Supervisor {
t.Helper()
log := zerolog.Nop()
observer := connection.NewObserver(&log, &log)
observer := connection.NewObserver(&log)
tracker := tunnelstate.NewConnTracker(&log)
connAwareLogger := NewConnAwareLogger(&log, tracker, observer)