diff --git a/README.md b/README.md index 4c63ba1..16f17e7 100644 --- a/README.md +++ b/README.md @@ -142,6 +142,8 @@ glider 0.15.0 usage: source ip or source interface -listen value listen url, format: SCHEME://[USER|METHOD:PASSWORD@][HOST]:PORT?PARAMS + -logflags int + log flags, do not change it if you do not know what it is, ref: https://pkg.go.dev/log#pkg-constants (default 19) -maxfailures int max failures to change forwarder status to disabled (default 3) -relaytimeout int diff --git a/config.go b/config.go index aa08fe3..7d1a330 100644 --- a/config.go +++ b/config.go @@ -16,7 +16,8 @@ var flag = conflag.New() // Config is global config struct. type Config struct { - Verbose bool + Verbose bool + LogFlags int Listens []string @@ -40,6 +41,7 @@ func parseConfig() *Config { flag.SetOutput(os.Stdout) flag.BoolVar(&conf.Verbose, "verbose", false, "verbose mode") + flag.IntVar(&conf.LogFlags, "logflags", 19, "log flags, do not change it if you do not know what it is, ref: https://pkg.go.dev/log#pkg-constants") flag.StringSliceUniqVar(&conf.Listens, "listen", nil, "listen url, format: SCHEME://[USER|METHOD:PASSWORD@][HOST]:PORT?PARAMS") flag.StringSliceUniqVar(&conf.Forwards, "forward", nil, "forward url, format: SCHEME://[USER|METHOD:PASSWORD@][HOST]:PORT?PARAMS[,SCHEME://[USER|METHOD:PASSWORD@][HOST]:PORT?PARAMS]") @@ -81,6 +83,7 @@ func parseConfig() *Config { // setup a log func if conf.Verbose { + log.SetFlag(conf.LogFlags) log.F = log.Debugf } diff --git a/log/log.go b/log/log.go index 7b45f49..8e7d3a6 100644 --- a/log/log.go +++ b/log/log.go @@ -8,8 +8,9 @@ import ( // F is the main log function. var F = func(string, ...interface{}) {} -func init() { - stdlog.SetFlags(stdlog.Flags() | stdlog.Lshortfile) +// SetFlag sets the output flags for the logger. +func SetFlag(flag int) { + stdlog.SetFlags(flag) } // Debugf prints debug log. diff --git a/proxy/tproxy/tproxy_linux.go b/proxy/tproxy/tproxy_linux.go index 3af95d7..8bf8773 100644 --- a/proxy/tproxy/tproxy_linux.go +++ b/proxy/tproxy/tproxy_linux.go @@ -73,6 +73,8 @@ func (s *TProxy) ListenAndServeUDP() { return } + log.F("[tproxyu] listening UDP on %s", s.addr) + var nm sync.Map buf := make([]byte, proxy.UDPBufSize)