Skip to content

Commit ebc003d

Browse files
committed
TUN-3514: Transport logger write to UI when UI is enabled
1 parent 543169c commit ebc003d

File tree

3 files changed

+34
-33
lines changed

3 files changed

+34
-33
lines changed

cmd/cloudflared/tunnel/cmd.go

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,7 @@ func StartServer(
249249
shutdownC,
250250
graceShutdownC chan struct{},
251251
namedTunnel *connection.NamedTunnelConfig,
252-
log logger.Service,
252+
generalLogger logger.Service,
253253
isUIEnabled bool,
254254
) error {
255255
_ = raven.SetDSN(sentryDSN)
@@ -260,45 +260,45 @@ func StartServer(
260260
dnsReadySignal := make(chan struct{})
261261

262262
if config.GetConfiguration().Source() == "" {
263-
log.Infof(config.ErrNoConfigFile.Error())
263+
generalLogger.Infof(config.ErrNoConfigFile.Error())
264264
}
265265

266266
if c.IsSet("trace-output") {
267267
tmpTraceFile, err := ioutil.TempFile("", "trace")
268268
if err != nil {
269-
log.Errorf("Failed to create new temporary file to save trace output: %s", err)
269+
generalLogger.Errorf("Failed to create new temporary file to save trace output: %s", err)
270270
}
271271

272272
defer func() {
273273
if err := tmpTraceFile.Close(); err != nil {
274-
log.Errorf("Failed to close trace output file %s with error: %s", tmpTraceFile.Name(), err)
274+
generalLogger.Errorf("Failed to close trace output file %s with error: %s", tmpTraceFile.Name(), err)
275275
}
276276
if err := os.Rename(tmpTraceFile.Name(), c.String("trace-output")); err != nil {
277-
log.Errorf("Failed to rename temporary trace output file %s to %s with error: %s", tmpTraceFile.Name(), c.String("trace-output"), err)
277+
generalLogger.Errorf("Failed to rename temporary trace output file %s to %s with error: %s", tmpTraceFile.Name(), c.String("trace-output"), err)
278278
} else {
279279
err := os.Remove(tmpTraceFile.Name())
280280
if err != nil {
281-
log.Errorf("Failed to remove the temporary trace file %s with error: %s", tmpTraceFile.Name(), err)
281+
generalLogger.Errorf("Failed to remove the temporary trace file %s with error: %s", tmpTraceFile.Name(), err)
282282
}
283283
}
284284
}()
285285

286286
if err := trace.Start(tmpTraceFile); err != nil {
287-
log.Errorf("Failed to start trace: %s", err)
287+
generalLogger.Errorf("Failed to start trace: %s", err)
288288
return errors.Wrap(err, "Error starting tracing")
289289
}
290290
defer trace.Stop()
291291
}
292292

293293
buildInfo := buildinfo.GetBuildInfo(version)
294-
buildInfo.Log(log)
295-
logClientOptions(c, log)
294+
buildInfo.Log(generalLogger)
295+
logClientOptions(c, generalLogger)
296296

297297
if c.IsSet("proxy-dns") {
298298
wg.Add(1)
299299
go func() {
300300
defer wg.Done()
301-
errC <- runDNSProxyServer(c, dnsReadySignal, shutdownC, log)
301+
errC <- runDNSProxyServer(c, dnsReadySignal, shutdownC, generalLogger)
302302
}()
303303
} else {
304304
close(dnsReadySignal)
@@ -309,24 +309,24 @@ func StartServer(
309309

310310
metricsListener, err := listeners.Listen("tcp", c.String("metrics"))
311311
if err != nil {
312-
log.Errorf("Error opening metrics server listener: %s", err)
312+
generalLogger.Errorf("Error opening metrics server listener: %s", err)
313313
return errors.Wrap(err, "Error opening metrics server listener")
314314
}
315315
defer metricsListener.Close()
316316
wg.Add(1)
317317
go func() {
318318
defer wg.Done()
319-
errC <- metrics.ServeMetrics(metricsListener, shutdownC, log)
319+
errC <- metrics.ServeMetrics(metricsListener, shutdownC, generalLogger)
320320
}()
321321

322322
go notifySystemd(connectedSignal)
323323
if c.IsSet("pidfile") {
324-
go writePidFile(connectedSignal, c.String("pidfile"), log)
324+
go writePidFile(connectedSignal, c.String("pidfile"), generalLogger)
325325
}
326326

327327
cloudflaredID, err := uuid.NewRandom()
328328
if err != nil {
329-
log.Errorf("Cannot generate cloudflared ID: %s", err)
329+
generalLogger.Errorf("Cannot generate cloudflared ID: %s", err)
330330
return err
331331
}
332332

@@ -337,12 +337,12 @@ func StartServer(
337337
}()
338338

339339
// update needs to be after DNS proxy is up to resolve equinox server address
340-
if updater.IsAutoupdateEnabled(c, log) {
341-
log.Infof("Autoupdate frequency is set to %v", c.Duration("autoupdate-freq"))
340+
if updater.IsAutoupdateEnabled(c, generalLogger) {
341+
generalLogger.Infof("Autoupdate frequency is set to %v", c.Duration("autoupdate-freq"))
342342
wg.Add(1)
343343
go func() {
344344
defer wg.Done()
345-
autoupdater := updater.NewAutoUpdater(c.Duration("autoupdate-freq"), &listeners, log)
345+
autoupdater := updater.NewAutoUpdater(c.Duration("autoupdate-freq"), &listeners, generalLogger)
346346
errC <- autoupdater.Run(ctx)
347347
}()
348348
}
@@ -351,33 +351,33 @@ func StartServer(
351351
if dnsProxyStandAlone(c) {
352352
connectedSignal.Notify()
353353
// no grace period, handle SIGINT/SIGTERM immediately
354-
return waitToShutdown(&wg, errC, shutdownC, graceShutdownC, 0, log)
354+
return waitToShutdown(&wg, errC, shutdownC, graceShutdownC, 0, generalLogger)
355355
}
356356

357357
url := c.String("url")
358358
hostname := c.String("hostname")
359359
if url == hostname && url != "" && hostname != "" {
360360
errText := "hostname and url shouldn't match. See --help for more information"
361-
log.Error(errText)
361+
generalLogger.Error(errText)
362362
return fmt.Errorf(errText)
363363
}
364364

365-
transportLogger, err := createLogger(c, true, false)
365+
transportLogger, err := createLogger(c, true, isUIEnabled)
366366
if err != nil {
367367
return errors.Wrap(err, "error setting up transport logger")
368368
}
369369

370-
tunnelConfig, ingressRules, err := prepareTunnelConfig(c, buildInfo, version, log, transportLogger, namedTunnel, isUIEnabled)
370+
tunnelConfig, ingressRules, err := prepareTunnelConfig(c, buildInfo, version, generalLogger, transportLogger, namedTunnel, isUIEnabled)
371371
if err != nil {
372372
return err
373373
}
374374

375-
ingressRules.StartOrigins(&wg, log, shutdownC, errC)
375+
ingressRules.StartOrigins(&wg, generalLogger, shutdownC, errC)
376376

377377
reconnectCh := make(chan origin.ReconnectSignal, 1)
378378
if c.IsSet("stdin-control") {
379-
log.Info("Enabling control through stdin")
380-
go stdinControl(reconnectCh, log)
379+
generalLogger.Info("Enabling control through stdin")
380+
go stdinControl(reconnectCh, generalLogger)
381381
}
382382

383383
wg.Add(1)
@@ -398,10 +398,10 @@ func StartServer(
398398
if err != nil {
399399
return err
400400
}
401-
tunnelInfo.LaunchUI(ctx, log, logLevels, tunnelConfig.TunnelEventChan)
401+
tunnelInfo.LaunchUI(ctx, generalLogger, transportLogger, logLevels, tunnelConfig.TunnelEventChan)
402402
}
403403

404-
return waitToShutdown(&wg, errC, shutdownC, graceShutdownC, c.Duration("grace-period"), log)
404+
return waitToShutdown(&wg, errC, shutdownC, graceShutdownC, c.Duration("grace-period"), generalLogger)
405405
}
406406

407407
// forceSetFlag attempts to set the given flag value in the closest context that has it defined

cmd/cloudflared/ui/launch_ui.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,15 +67,16 @@ func NewUIModel(version, hostname, metricsURL string, ing *ingress.Ingress, haCo
6767

6868
func (data *uiModel) LaunchUI(
6969
ctx context.Context,
70-
log logger.Service,
70+
generalLogger, transportLogger logger.Service,
7171
logLevels []logger.Level,
7272
tunnelEventChan <-chan TunnelEvent,
7373
) {
7474
// Configure the logger to stream logs into the textview
7575

7676
// Add TextView as a group to write output to
7777
logTextView := NewDynamicColorTextView()
78-
log.Add(logTextView, logger.NewUIFormatter(time.RFC3339), logLevels...)
78+
generalLogger.Add(logTextView, logger.NewUIFormatter(time.RFC3339), logLevels...)
79+
transportLogger.Add(logTextView, logger.NewUIFormatter(time.RFC3339), logLevels...)
7980

8081
// Construct the UI
8182
palette := palette{
@@ -140,7 +141,7 @@ func (data *uiModel) LaunchUI(
140141
case Connected:
141142
data.setConnTableCell(event, connTable, palette)
142143
case Disconnected, Reconnecting:
143-
data.changeConnStatus(event, connTable, log, palette)
144+
data.changeConnStatus(event, connTable, generalLogger, palette)
144145
case SetUrl:
145146
tunnelHostText.SetText(event.Url)
146147
data.edgeURL = event.Url
@@ -156,7 +157,7 @@ func (data *uiModel) LaunchUI(
156157

157158
go func() {
158159
if err := app.SetRoot(frame, true).Run(); err != nil {
159-
log.Errorf("Error launching UI: %s", err)
160+
generalLogger.Errorf("Error launching UI: %s", err)
160161
}
161162
}()
162163
}

connection/observer.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,13 @@ func NewObserver(logger logger.Service, tunnelEventChan chan<- ui.TunnelEvent) *
2424
}
2525
}
2626

27-
func (o *Observer) logServerInfo(connectionID uint8, location, msg string) {
27+
func (o *Observer) logServerInfo(connIndex uint8, location, msg string) {
2828
// If launch-ui flag is set, send connect msg
2929
if o.tunnelEventChan != nil {
30-
o.tunnelEventChan <- ui.TunnelEvent{Index: connectionID, EventType: ui.Connected, Location: location}
30+
o.tunnelEventChan <- ui.TunnelEvent{Index: connIndex, EventType: ui.Connected, Location: location}
3131
}
3232
o.Infof(msg)
33-
o.metrics.registerServerLocation(uint8ToString(connectionID), location)
33+
o.metrics.registerServerLocation(uint8ToString(connIndex), location)
3434
}
3535

3636
func (o *Observer) logTrialHostname(registration *tunnelpogs.TunnelRegistration) error {

0 commit comments

Comments
 (0)