diff --git a/internal/logging/line.go b/internal/logging/line.go index 1827ebca..783696be 100644 --- a/internal/logging/line.go +++ b/internal/logging/line.go @@ -26,6 +26,28 @@ var regularExpressions = struct { //nolint:gochecknoglobals func PostProcessLine(s string) (filtered string, level logging.Level) { switch { case strings.HasPrefix(s, "openvpn: "): + for _, ignored := range []string{ + "openvpn: WARNING: you are using user/group/chroot/setcon without persist-tun -- this may cause restarts to fail", + "openvpn: NOTE: UID/GID downgrade will be delayed because of --client, --pull, or --up-delay", + } { + if s == ignored { + return "", "" + } + } + switch { + case strings.HasPrefix(s, "openvpn: NOTE: "): + filtered = strings.TrimPrefix(s, "openvpn: NOTE: ") + filtered = "openvpn: " + filtered + return filtered, logging.InfoLevel + case strings.HasPrefix(s, "openvpn: WARNING: "): + filtered = strings.TrimPrefix(s, "openvpn: WARNING: ") + filtered = "openvpn: " + filtered + return filtered, logging.WarnLevel + case strings.HasPrefix(s, "openvpn: Options error: "): + filtered = strings.TrimPrefix(s, "openvpn: Options error: ") + filtered = "openvpn: " + filtered + return filtered, logging.ErrorLevel + } filtered = constants.ColorOpenvpn().Sprintf(s) return filtered, logging.InfoLevel case strings.HasPrefix(s, "unbound: "): diff --git a/internal/logging/line_test.go b/internal/logging/line_test.go index 4a42f800..34bc95ba 100644 --- a/internal/logging/line_test.go +++ b/internal/logging/line_test.go @@ -80,6 +80,26 @@ func Test_PostProcessLine(t *testing.T) { "tinyproxy: BLABLA Jul 12 23:07:25 [32]: Reloading config file", "tinyproxy: Reloading config file", logging.ErrorLevel}, + "openvpn unknown": { + "openvpn: message", + "openvpn: message", + logging.InfoLevel}, + "openvpn note": { + "openvpn: NOTE: message", + "openvpn: message", + logging.InfoLevel}, + "openvpn warning": { + "openvpn: WARNING: message", + "openvpn: message", + logging.WarnLevel}, + "openvpn options error": { + "openvpn: Options error: message", + "openvpn: message", + logging.ErrorLevel}, + "openvpn ignored message": { + "openvpn: NOTE: UID/GID downgrade will be delayed because of --client, --pull, or --up-delay", + "", + ""}, } for name, tc := range tests { tc := tc