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:
@@ -6,6 +6,7 @@ import (
|
||||
"net"
|
||||
"os"
|
||||
"os/signal"
|
||||
"regexp"
|
||||
"strings"
|
||||
"syscall"
|
||||
"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
|
||||
logger.Info("Launching standard output merger")
|
||||
streamMerger.CollectLines(ctx, func(line string) {
|
||||
line = trimEventualProgramPrefix(line)
|
||||
logger.Info(line)
|
||||
if strings.Contains(line, "Initialization Sequence Completed") {
|
||||
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,
|
||||
logger logging.Logger, httpServer server.Server, waiter command.Waiter, fatalOnError func(err error)) {
|
||||
logger = logger.WithPrefix("openvpn: ")
|
||||
|
||||
@@ -65,6 +65,7 @@ func (c *configurator) BuildConf(connections []models.OpenVPNConnection, verbosi
|
||||
"pull-filter ignore \"auth-token\"", // prevent auth failed loops
|
||||
"auth-retry nointeract",
|
||||
"remote-random",
|
||||
"suppress-timestamps",
|
||||
|
||||
// Modified variables
|
||||
fmt.Sprintf("verb %d", verbosity),
|
||||
|
||||
@@ -99,6 +99,7 @@ func (c *configurator) BuildConf(connections []models.OpenVPNConnection, encrypt
|
||||
"pull-filter ignore \"auth-token\"", // prevent auth failed loops
|
||||
"auth-retry nointeract",
|
||||
"remote-random",
|
||||
"suppress-timestamps",
|
||||
|
||||
// Modified variables
|
||||
fmt.Sprintf("verb %d", verbosity),
|
||||
|
||||
@@ -76,6 +76,7 @@ func (c *configurator) BuildConf(connections []models.OpenVPNConnection, verbosi
|
||||
"pull-filter ignore \"auth-token\"", // prevent auth failed loops
|
||||
"auth-retry nointeract",
|
||||
"remote-random",
|
||||
"suppress-timestamps",
|
||||
|
||||
// Modified variables
|
||||
fmt.Sprintf("verb %d", verbosity),
|
||||
|
||||
Reference in New Issue
Block a user