Maintenance: new logging, shorter with less deps
This commit is contained in:
@@ -15,13 +15,10 @@ import (
|
||||
)
|
||||
|
||||
func (c *cli) OpenvpnConfig(os os.OS) error {
|
||||
logger, err := logging.NewLogger(logging.ConsoleEncoding, logging.InfoLevel)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
logger := logging.New(logging.StdLog)
|
||||
|
||||
var allSettings configuration.Settings
|
||||
err = allSettings.Read(params.NewEnv(), os, logger)
|
||||
err := allSettings.Read(params.NewEnv(), os, logger)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -35,10 +35,7 @@ func (c *cli) Update(ctx context.Context, args []string, os os.OS) error {
|
||||
if err := flagSet.Parse(args); err != nil {
|
||||
return err
|
||||
}
|
||||
logger, err := logging.NewLogger(logging.ConsoleEncoding, logging.InfoLevel)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
logger := logging.New(logging.StdLog)
|
||||
if !flushToFile && !options.Stdout {
|
||||
return fmt.Errorf("at least one of -file or -stdout must be specified")
|
||||
}
|
||||
|
||||
@@ -23,13 +23,13 @@ func (l *looper) collectLines(wg *sync.WaitGroup, stdout, stderr <-chan string)
|
||||
}
|
||||
line, level := processLogLine(line)
|
||||
switch level {
|
||||
case logging.DebugLevel:
|
||||
case logging.LevelDebug:
|
||||
l.logger.Debug(line)
|
||||
case logging.InfoLevel:
|
||||
case logging.LevelInfo:
|
||||
l.logger.Info(line)
|
||||
case logging.WarnLevel:
|
||||
case logging.LevelWarn:
|
||||
l.logger.Warn(line)
|
||||
case logging.ErrorLevel:
|
||||
case logging.LevelError:
|
||||
l.logger.Error(line)
|
||||
}
|
||||
}
|
||||
@@ -43,18 +43,18 @@ func processLogLine(s string) (filtered string, level logging.Level) {
|
||||
switch {
|
||||
case strings.HasPrefix(filtered, "notice: "):
|
||||
filtered = strings.TrimPrefix(filtered, "notice: ")
|
||||
level = logging.InfoLevel
|
||||
level = logging.LevelInfo
|
||||
case strings.HasPrefix(filtered, "info: "):
|
||||
filtered = strings.TrimPrefix(filtered, "info: ")
|
||||
level = logging.InfoLevel
|
||||
level = logging.LevelInfo
|
||||
case strings.HasPrefix(filtered, "warn: "):
|
||||
filtered = strings.TrimPrefix(filtered, "warn: ")
|
||||
level = logging.WarnLevel
|
||||
level = logging.LevelWarn
|
||||
case strings.HasPrefix(filtered, "error: "):
|
||||
filtered = strings.TrimPrefix(filtered, "error: ")
|
||||
level = logging.ErrorLevel
|
||||
level = logging.LevelError
|
||||
default:
|
||||
level = logging.InfoLevel
|
||||
level = logging.LevelInfo
|
||||
}
|
||||
filtered = constants.ColorUnbound().Sprintf(filtered)
|
||||
return filtered, level
|
||||
|
||||
@@ -14,28 +14,28 @@ func Test_processLogLine(t *testing.T) {
|
||||
filtered string
|
||||
level logging.Level
|
||||
}{
|
||||
"empty string": {"", "", logging.InfoLevel},
|
||||
"random string": {"asdasqdb", "asdasqdb", logging.InfoLevel},
|
||||
"empty string": {"", "", logging.LevelInfo},
|
||||
"random string": {"asdasqdb", "asdasqdb", logging.LevelInfo},
|
||||
"unbound notice": {
|
||||
"[1594595249] unbound[75:0] notice: init module 0: validator",
|
||||
"init module 0: validator",
|
||||
logging.InfoLevel},
|
||||
logging.LevelInfo},
|
||||
"unbound info": {
|
||||
"[1594595249] unbound[75:0] info: init module 0: validator",
|
||||
"init module 0: validator",
|
||||
logging.InfoLevel},
|
||||
logging.LevelInfo},
|
||||
"unbound warn": {
|
||||
"[1594595249] unbound[75:0] warn: init module 0: validator",
|
||||
"init module 0: validator",
|
||||
logging.WarnLevel},
|
||||
logging.LevelWarn},
|
||||
"unbound error": {
|
||||
"[1594595249] unbound[75:0] error: init module 0: validator",
|
||||
"init module 0: validator",
|
||||
logging.ErrorLevel},
|
||||
logging.LevelError},
|
||||
"unbound unknown": {
|
||||
"[1594595249] unbound[75:0] BLA: init module 0: validator",
|
||||
"BLA: init module 0: validator",
|
||||
logging.InfoLevel},
|
||||
logging.LevelInfo},
|
||||
}
|
||||
for name, tc := range tests {
|
||||
tc := tc
|
||||
|
||||
@@ -55,7 +55,7 @@ func NewLooper(conf unbound.Configurator, settings configuration.DNS, client *ht
|
||||
},
|
||||
conf: conf,
|
||||
client: client,
|
||||
logger: logger.WithPrefix("dns over tls: "),
|
||||
logger: logger.NewChild(logging.SetPrefix("dns over tls: ")),
|
||||
username: username,
|
||||
puid: puid,
|
||||
pgid: pgid,
|
||||
|
||||
@@ -52,7 +52,7 @@ type configurator struct { //nolint:maligned
|
||||
func NewConfigurator(logger logging.Logger, routing routing.Routing, openFile os.OpenFileFunc) Configurator {
|
||||
return &configurator{
|
||||
commander: command.NewCommander(),
|
||||
logger: logger.WithPrefix("firewall: "),
|
||||
logger: logger.NewChild(logging.SetPrefix("firewall: ")),
|
||||
routing: routing,
|
||||
openFile: openFile,
|
||||
allowedInputPorts: make(map[uint16]string),
|
||||
|
||||
@@ -23,7 +23,7 @@ type server struct {
|
||||
}
|
||||
|
||||
func NewServer(address string, logger logging.Logger) Server {
|
||||
healthcheckLogger := logger.WithPrefix("healthcheck: ")
|
||||
healthcheckLogger := logger.NewChild(logging.SetPrefix("healthcheck: "))
|
||||
return &server{
|
||||
address: address,
|
||||
logger: healthcheckLogger,
|
||||
|
||||
@@ -41,7 +41,7 @@ func NewLooper(logger logging.Logger, settings configuration.HTTPProxy) Looper {
|
||||
status: constants.Stopped,
|
||||
settings: settings,
|
||||
},
|
||||
logger: logger.WithPrefix("http proxy: "),
|
||||
logger: logger.NewChild(logging.SetPrefix("http proxy: ")),
|
||||
start: make(chan struct{}),
|
||||
running: make(chan models.LoopStatus),
|
||||
stop: make(chan struct{}),
|
||||
|
||||
@@ -29,16 +29,16 @@ func (l *looper) collectLines(wg *sync.WaitGroup, stdout, stderr <-chan string)
|
||||
continue // filtered out
|
||||
}
|
||||
if errLine {
|
||||
level = logging.ErrorLevel
|
||||
level = logging.LevelError
|
||||
}
|
||||
switch level {
|
||||
case logging.DebugLevel:
|
||||
case logging.LevelDebug:
|
||||
l.logger.Debug(line)
|
||||
case logging.InfoLevel:
|
||||
case logging.LevelInfo:
|
||||
l.logger.Info(line)
|
||||
case logging.WarnLevel:
|
||||
case logging.LevelWarn:
|
||||
l.logger.Warn(line)
|
||||
case logging.ErrorLevel:
|
||||
case logging.LevelError:
|
||||
l.logger.Error(line)
|
||||
}
|
||||
if strings.Contains(line, "Initialization Sequence Completed") {
|
||||
@@ -53,21 +53,21 @@ func processLogLine(s string) (filtered string, level logging.Level) {
|
||||
"NOTE: UID/GID downgrade will be delayed because of --client, --pull, or --up-delay",
|
||||
} {
|
||||
if s == ignored {
|
||||
return "", ""
|
||||
return "", logging.LevelDebug
|
||||
}
|
||||
}
|
||||
switch {
|
||||
case strings.HasPrefix(s, "NOTE: "):
|
||||
filtered = strings.TrimPrefix(s, "NOTE: ")
|
||||
level = logging.InfoLevel
|
||||
level = logging.LevelInfo
|
||||
case strings.HasPrefix(s, "WARNING: "):
|
||||
filtered = strings.TrimPrefix(s, "WARNING: ")
|
||||
level = logging.WarnLevel
|
||||
level = logging.LevelWarn
|
||||
case strings.HasPrefix(s, "Options error: "):
|
||||
filtered = strings.TrimPrefix(s, "Options error: ")
|
||||
level = logging.ErrorLevel
|
||||
level = logging.LevelError
|
||||
case s == "Initialization Sequence Completed":
|
||||
return color.HiGreenString(s), logging.InfoLevel
|
||||
return color.HiGreenString(s), logging.LevelInfo
|
||||
case s == "AUTH: Received control message: AUTH_FAILED":
|
||||
filtered = s + `
|
||||
|
||||
@@ -76,7 +76,7 @@ Your credentials might be wrong 🤨
|
||||
💡 If you use Private Internet Access, check https://github.com/qdm12/gluetun/issues/265
|
||||
|
||||
`
|
||||
level = logging.ErrorLevel
|
||||
level = logging.LevelError
|
||||
case strings.Contains(s, "TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)"): //nolint:lll
|
||||
filtered = s + `
|
||||
🚒🚒🚒🚒🚒🚨🚨🚨🚨🚨🚨🚒🚒🚒🚒🚒
|
||||
@@ -93,7 +93,7 @@ That error usually happens because either:
|
||||
`
|
||||
default:
|
||||
filtered = s
|
||||
level = logging.InfoLevel
|
||||
level = logging.LevelInfo
|
||||
}
|
||||
filtered = constants.ColorOpenvpn().Sprintf(filtered)
|
||||
return filtered, level
|
||||
|
||||
@@ -14,36 +14,36 @@ func Test_processLogLine(t *testing.T) {
|
||||
filtered string
|
||||
level logging.Level
|
||||
}{
|
||||
"empty string": {"", "", logging.InfoLevel},
|
||||
"random string": {"asdasqdb", "asdasqdb", logging.InfoLevel},
|
||||
"empty string": {"", "", logging.LevelInfo},
|
||||
"random string": {"asdasqdb", "asdasqdb", logging.LevelInfo},
|
||||
"openvpn unknown": {
|
||||
"message",
|
||||
"message",
|
||||
logging.InfoLevel},
|
||||
logging.LevelInfo},
|
||||
"openvpn note": {
|
||||
"NOTE: message",
|
||||
"message",
|
||||
logging.InfoLevel},
|
||||
logging.LevelInfo},
|
||||
"openvpn warning": {
|
||||
"WARNING: message",
|
||||
"message",
|
||||
logging.WarnLevel},
|
||||
logging.LevelWarn},
|
||||
"openvpn options error": {
|
||||
"Options error: message",
|
||||
"message",
|
||||
logging.ErrorLevel},
|
||||
logging.LevelError},
|
||||
"openvpn ignored message": {
|
||||
"NOTE: UID/GID downgrade will be delayed because of --client, --pull, or --up-delay",
|
||||
"",
|
||||
""},
|
||||
logging.LevelDebug},
|
||||
"openvpn success": {
|
||||
"Initialization Sequence Completed",
|
||||
"Initialization Sequence Completed",
|
||||
logging.InfoLevel},
|
||||
logging.LevelInfo},
|
||||
"openvpn auth failed": {
|
||||
"AUTH: Received control message: AUTH_FAILED",
|
||||
"AUTH: Received control message: AUTH_FAILED\n\nYour credentials might be wrong 🤨\n\n💡 If you use Private Internet Access, check https://github.com/qdm12/gluetun/issues/265\n\n", //nolint:lll
|
||||
logging.ErrorLevel},
|
||||
logging.LevelError},
|
||||
}
|
||||
for name, tc := range tests {
|
||||
tc := tc
|
||||
|
||||
@@ -75,8 +75,8 @@ func NewLooper(settings configuration.OpenVPN,
|
||||
conf: conf,
|
||||
fw: fw,
|
||||
routing: routing,
|
||||
logger: logger.WithPrefix("openvpn: "),
|
||||
pfLogger: logger.WithPrefix("port forwarding: "),
|
||||
logger: logger.NewChild(logging.SetPrefix("openvpn: ")),
|
||||
pfLogger: logger.NewChild(logging.SetPrefix("port forwarding: ")),
|
||||
client: client,
|
||||
openFile: openFile,
|
||||
tunnelReady: tunnelReady,
|
||||
|
||||
@@ -29,7 +29,7 @@ type configurator struct {
|
||||
|
||||
func NewConfigurator(logger logging.Logger, os os.OS, unix unix.Unix) Configurator {
|
||||
return &configurator{
|
||||
logger: logger.WithPrefix("openvpn configurator: "),
|
||||
logger: logger.NewChild(logging.SetPrefix("openvpn configurator: ")),
|
||||
commander: command.NewCommander(),
|
||||
os: os,
|
||||
unix: unix,
|
||||
|
||||
@@ -60,7 +60,7 @@ func NewLooper(client *http.Client, logger logging.Logger,
|
||||
// Objects
|
||||
client: client,
|
||||
getter: NewIPGetter(client),
|
||||
logger: logger.WithPrefix("ip getter: "),
|
||||
logger: logger.NewChild(logging.SetPrefix("ip getter: ")),
|
||||
os: os,
|
||||
puid: puid,
|
||||
pgid: pgid,
|
||||
|
||||
@@ -37,7 +37,7 @@ type routing struct {
|
||||
// NewRouting creates a new routing instance.
|
||||
func NewRouting(logger logging.Logger) Routing {
|
||||
return &routing{
|
||||
logger: logger.WithPrefix("routing: "),
|
||||
logger: logger.NewChild(logging.SetPrefix("routing: ")),
|
||||
verbose: true,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,12 +25,12 @@ type server struct {
|
||||
handler http.Handler
|
||||
}
|
||||
|
||||
func New(address string, logging bool, logger logging.Logger,
|
||||
func New(address string, logEnabled bool, logger logging.Logger,
|
||||
buildInfo models.BuildInformation,
|
||||
openvpnLooper openvpn.Looper, unboundLooper dns.Looper,
|
||||
updaterLooper updater.Looper, publicIPLooper publicip.Looper) Server {
|
||||
serverLogger := logger.WithPrefix("http server: ")
|
||||
handler := newHandler(serverLogger, logging, buildInfo,
|
||||
serverLogger := logger.NewChild(logging.SetPrefix("http server: "))
|
||||
handler := newHandler(serverLogger, logEnabled, buildInfo,
|
||||
openvpnLooper, unboundLooper, updaterLooper, publicIPLooper)
|
||||
return &server{
|
||||
address: address,
|
||||
|
||||
@@ -58,7 +58,7 @@ func NewLooper(settings configuration.ShadowSocks, logger logging.Logger) Looper
|
||||
status: constants.Stopped,
|
||||
settings: settings,
|
||||
},
|
||||
logger: logger.WithPrefix("shadowsocks: "),
|
||||
logger: logger.NewChild(logging.SetPrefix("shadowsocks: ")),
|
||||
start: make(chan struct{}),
|
||||
running: make(chan models.LoopStatus),
|
||||
stop: make(chan struct{}),
|
||||
|
||||
@@ -22,7 +22,7 @@ type storage struct {
|
||||
func New(logger logging.Logger, os os.OS, filepath string) Storage {
|
||||
return &storage{
|
||||
os: os,
|
||||
logger: logger.WithPrefix("storage: "),
|
||||
logger: logger.NewChild(logging.SetPrefix("storage: ")),
|
||||
filepath: filepath,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ const defaultBackoffTime = 5 * time.Second
|
||||
func NewLooper(settings configuration.Updater, currentServers models.AllServers,
|
||||
storage storage.Storage, setAllServers func(allServers models.AllServers),
|
||||
client *http.Client, logger logging.Logger) Looper {
|
||||
loggerWithPrefix := logger.WithPrefix("updater: ")
|
||||
loggerWithPrefix := logger.NewChild(logging.SetPrefix("updater: "))
|
||||
return &looper{
|
||||
state: state{
|
||||
status: constants.Stopped,
|
||||
|
||||
Reference in New Issue
Block a user