feat(main): add -diagnose flag to control tsnet debug log
This commit is contained in:
+10
-4
@@ -10,14 +10,20 @@ import (
|
|||||||
"tailscale.com/tsnet"
|
"tailscale.com/tsnet"
|
||||||
)
|
)
|
||||||
|
|
||||||
func InitTsNet(ctx context.Context, cfg *Core, logger *slog.Logger) (*tsnet.Server, error) {
|
func InitTsNet(ctx context.Context, cfg *Core, logger *slog.Logger, withDebugLog bool) (*tsnet.Server, error) {
|
||||||
|
dbgLogger := func(fmt string, args ...interface{}) {}
|
||||||
|
if withDebugLog {
|
||||||
|
logger.Warn("Tsnet debug log activated")
|
||||||
|
dbgLogger = func(fmt string, args ...interface{}) {
|
||||||
|
logger.With(slog.String("from", "tsnet")).Debug(fmt2.Sprintf(fmt, args...))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
srv := &tsnet.Server{
|
srv := &tsnet.Server{
|
||||||
Hostname: "tslink-" + cfg.Hostname,
|
Hostname: "tslink-" + cfg.Hostname,
|
||||||
AuthKey: cfg.AuthKey,
|
AuthKey: cfg.AuthKey,
|
||||||
Ephemeral: cfg.Ephemeral,
|
Ephemeral: cfg.Ephemeral,
|
||||||
Logf: func(fmt string, args ...interface{}) {
|
Logf: dbgLogger,
|
||||||
logger.With(slog.String("from", "tsnet")).Debug(fmt2.Sprintf(fmt, args...))
|
|
||||||
},
|
|
||||||
UserLogf: func(fmt string, args ...interface{}) {
|
UserLogf: func(fmt string, args ...interface{}) {
|
||||||
logger.With(slog.String("from", "tsnet")).Info(fmt2.Sprintf(fmt, args...))
|
logger.With(slog.String("from", "tsnet")).Info(fmt2.Sprintf(fmt, args...))
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import (
|
|||||||
"tslink/core"
|
"tslink/core"
|
||||||
)
|
)
|
||||||
|
|
||||||
func serviceLogic(configPath string, logger *slog.Logger) bool {
|
func serviceLogic(configPath string, isTsnetDebug bool, logger *slog.Logger) bool {
|
||||||
cfg, err := core.LoadConfig(configPath)
|
cfg, err := core.LoadConfig(configPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.With(
|
logger.With(
|
||||||
@@ -22,7 +22,7 @@ func serviceLogic(configPath string, logger *slog.Logger) bool {
|
|||||||
|
|
||||||
ctx, cancelAll := context.WithCancel(context.Background())
|
ctx, cancelAll := context.WithCancel(context.Background())
|
||||||
logger.Info("initializing tsnet server")
|
logger.Info("initializing tsnet server")
|
||||||
srv, err := core.InitTsNet(ctx, &cfg.Core, logger)
|
srv, err := core.InitTsNet(ctx, &cfg.Core, logger, isTsnetDebug)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.With(
|
logger.With(
|
||||||
slog.String("error", err.Error())).Error("Error initializing tsnet")
|
slog.String("error", err.Error())).Error("Error initializing tsnet")
|
||||||
@@ -45,7 +45,7 @@ func serviceLogic(configPath string, logger *slog.Logger) bool {
|
|||||||
go func() {
|
go func() {
|
||||||
<-ctx.Done()
|
<-ctx.Done()
|
||||||
logger.Debug("stopping tsnet service")
|
logger.Debug("stopping tsnet service")
|
||||||
srv.Close()
|
_ = srv.Close() // just ignore it
|
||||||
}()
|
}()
|
||||||
|
|
||||||
for {
|
for {
|
||||||
@@ -66,6 +66,7 @@ func serviceLogic(configPath string, logger *slog.Logger) bool {
|
|||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
useJsonFormatLogger := flag.Bool("json-format", false, "use json format logger")
|
useJsonFormatLogger := flag.Bool("json-format", false, "use json format logger")
|
||||||
|
showTsnetDebugLog := flag.Bool("diagnose", false, "show tsnet debug log on level=debug")
|
||||||
logLevel := flag.String("level", "info", "log level (DEBUG|INFO|WARN|ERROR)")
|
logLevel := flag.String("level", "info", "log level (DEBUG|INFO|WARN|ERROR)")
|
||||||
configPath := flag.String("c", "config.toml", "path to config file")
|
configPath := flag.String("c", "config.toml", "path to config file")
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
@@ -75,7 +76,7 @@ func main() {
|
|||||||
logger.Info("Starting tslink server", "level", *logLevel, "configPath", *configPath)
|
logger.Info("Starting tslink server", "level", *logLevel, "configPath", *configPath)
|
||||||
|
|
||||||
for {
|
for {
|
||||||
isStopped := serviceLogic(*configPath, logger)
|
isStopped := serviceLogic(*configPath, *showTsnetDebugLog, logger)
|
||||||
if !isStopped {
|
if !isStopped {
|
||||||
logger.Warn("tslink server restart")
|
logger.Warn("tslink server restart")
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user