Remove timestamps from program logs

- Using suppress-timestamps for openvpn
- Using custom regexp for tinyproxy, shadowsocks and unbound
- Time is now only shown once per line
- Log level of subprogram is preserverd
This commit is contained in:
Quentin McGaw
2020-05-29 11:17:14 +00:00
parent cc80d224c2
commit 85a93bdd34
4 changed files with 26 additions and 0 deletions

View File

@@ -6,6 +6,7 @@ import (
"net" "net"
"os" "os"
"os/signal" "os/signal"
"regexp"
"strings" "strings"
"syscall" "syscall"
"time" "time"
@@ -320,6 +321,7 @@ func collectStreamLines(ctx context.Context, streamMerger command.StreamMerger,
// Blocking line merging paramsReader for all programs: openvpn, tinyproxy, unbound and shadowsocks // Blocking line merging paramsReader for all programs: openvpn, tinyproxy, unbound and shadowsocks
logger.Info("Launching standard output merger") logger.Info("Launching standard output merger")
streamMerger.CollectLines(ctx, func(line string) { streamMerger.CollectLines(ctx, func(line string) {
line = trimEventualProgramPrefix(line)
logger.Info(line) logger.Info(line)
if strings.Contains(line, "Initialization Sequence Completed") { if strings.Contains(line, "Initialization Sequence Completed") {
signalConnected() signalConnected()
@@ -329,6 +331,27 @@ func collectStreamLines(ctx context.Context, streamMerger command.StreamMerger,
}) })
} }
func trimEventualProgramPrefix(s string) string {
switch {
case strings.HasPrefix(s, "unbound: "):
prefixRegex := regexp.MustCompile(`unbound: \[[0-9]{10}\] unbound\[[0-9]+:0\] `)
prefix := prefixRegex.FindString(s)
return fmt.Sprintf("unbound: %s", s[len(prefix):])
case strings.HasPrefix(s, "shadowsocks: "):
prefixRegex := regexp.MustCompile(`shadowsocks:[ ]+2[0-9]{3}\-[0-1][0-9]\-[0-3][0-9] [0-2][0-9]:[0-5][0-9]:[0-5][0-9] `)
prefix := prefixRegex.FindString(s)
return fmt.Sprintf("shadowsocks: %s", s[len(prefix):])
case strings.HasPrefix(s, "tinyproxy: "):
logLevelRegex := regexp.MustCompile(`INFO|CONNECT|NOTICE|WARNING|ERROR|CRITICAL`)
logLevel := logLevelRegex.FindString(s)
prefixRegex := regexp.MustCompile(`tinyproxy: (INFO|CONNECT|NOTICE|WARNING|ERROR|CRITICAL)[ ]+(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-3][0-9] [0-2][0-9]:[0-5][0-9]:[0-5][0-9] \[[0-9]+\]: `)
prefix := prefixRegex.FindString(s)
return fmt.Sprintf("tinyproxy: %s %s", logLevel, s[len(prefix):])
default:
return s
}
}
func openvpnRunLoop(ctx context.Context, ovpnConf openvpn.Configurator, streamMerger command.StreamMerger, func openvpnRunLoop(ctx context.Context, ovpnConf openvpn.Configurator, streamMerger command.StreamMerger,
logger logging.Logger, httpServer server.Server, waiter command.Waiter, fatalOnError func(err error)) { logger logging.Logger, httpServer server.Server, waiter command.Waiter, fatalOnError func(err error)) {
logger = logger.WithPrefix("openvpn: ") logger = logger.WithPrefix("openvpn: ")

View File

@@ -65,6 +65,7 @@ func (c *configurator) BuildConf(connections []models.OpenVPNConnection, verbosi
"pull-filter ignore \"auth-token\"", // prevent auth failed loops "pull-filter ignore \"auth-token\"", // prevent auth failed loops
"auth-retry nointeract", "auth-retry nointeract",
"remote-random", "remote-random",
"suppress-timestamps",
// Modified variables // Modified variables
fmt.Sprintf("verb %d", verbosity), fmt.Sprintf("verb %d", verbosity),

View File

@@ -99,6 +99,7 @@ func (c *configurator) BuildConf(connections []models.OpenVPNConnection, encrypt
"pull-filter ignore \"auth-token\"", // prevent auth failed loops "pull-filter ignore \"auth-token\"", // prevent auth failed loops
"auth-retry nointeract", "auth-retry nointeract",
"remote-random", "remote-random",
"suppress-timestamps",
// Modified variables // Modified variables
fmt.Sprintf("verb %d", verbosity), fmt.Sprintf("verb %d", verbosity),

View File

@@ -76,6 +76,7 @@ func (c *configurator) BuildConf(connections []models.OpenVPNConnection, verbosi
"pull-filter ignore \"auth-token\"", // prevent auth failed loops "pull-filter ignore \"auth-token\"", // prevent auth failed loops
"auth-retry nointeract", "auth-retry nointeract",
"remote-random", "remote-random",
"suppress-timestamps",
// Modified variables // Modified variables
fmt.Sprintf("verb %d", verbosity), fmt.Sprintf("verb %d", verbosity),