summaryrefslogtreecommitdiff
path: root/internal
diff options
context:
space:
mode:
authorPaul Buetow <git@mx.buetow.org>2020-12-26 14:28:31 +0000
committerPaul Buetow <git@mx.buetow.org>2020-12-26 14:28:31 +0000
commitf9415259bc5d74a89801be75587da87dd37518af (patch)
tree7bfb13bf19e3f1fe8d8c4e5d54d1331ebaad55f5 /internal
parentb05ae938aa6ada831d19de076861e246a03a9d7d (diff)
initial quiet switch
Diffstat (limited to 'internal')
-rw-r--r--internal/clients/baseclient.go4
-rw-r--r--internal/clients/maprclient.go6
-rw-r--r--internal/io/logger/logger.go22
-rw-r--r--internal/io/logger/modes.go1
-rw-r--r--internal/server/handlers/controlhandler.go4
-rw-r--r--internal/server/handlers/readcommand.go11
-rw-r--r--internal/server/handlers/serverhandler.go11
7 files changed, 35 insertions, 24 deletions
diff --git a/internal/clients/baseclient.go b/internal/clients/baseclient.go
index 572680c..f20156f 100644
--- a/internal/clients/baseclient.go
+++ b/internal/clients/baseclient.go
@@ -39,7 +39,7 @@ type baseClient struct {
}
func (c *baseClient) init() {
- logger.Info("Initiating base client")
+ logger.Debug("Initiating base client")
flag := regex.Default
if c.Args.RegexInvert {
@@ -127,7 +127,7 @@ func (c *baseClient) makeConnection(server string, sshAuthMethods []gossh.AuthMe
}
func (c *baseClient) waitUntilDone(ctx context.Context, active chan struct{}) {
- defer logger.Info("Terminated connection")
+ defer logger.Debug("Terminated connection")
// We want to have at least one active connection
<-active
diff --git a/internal/clients/maprclient.go b/internal/clients/maprclient.go
index 9beea13..1c0c2cc 100644
--- a/internal/clients/maprclient.go
+++ b/internal/clients/maprclient.go
@@ -99,7 +99,7 @@ func (c *MaprClient) Start(ctx context.Context, statsCh <-chan string) (status i
status = c.baseClient.Start(ctx, statsCh)
if c.cumulative {
- logger.Info("Received final mapreduce result")
+ logger.Debug("Received final mapreduce result")
c.reportResults()
}
@@ -134,7 +134,7 @@ func (c *MaprClient) periodicReportResults(ctx context.Context) {
for {
select {
case <-time.After(c.query.Interval):
- logger.Info("Gathering interim mapreduce result")
+ logger.Debug("Gathering interim mapreduce result")
c.reportResults()
case <-ctx.Done():
return
@@ -166,7 +166,7 @@ func (c *MaprClient) printResults() {
}
if numLines == 0 {
- logger.Info("Empty result set this time...")
+ logger.Warn("Empty result set this time...")
return
}
diff --git a/internal/io/logger/logger.go b/internal/io/logger/logger.go
index b7db0a7..7674dd1 100644
--- a/internal/io/logger/logger.go
+++ b/internal/io/logger/logger.go
@@ -72,12 +72,15 @@ type buf struct {
func Start(ctx context.Context, mode Modes) {
Mode = mode
- if Mode.Nothing {
+ switch {
+ case Mode.Nothing:
return
- }
-
- if Mode.Trace {
+ case Mode.Quiet:
+ Mode.Trace = false
+ Mode.Debug = false
+ case Mode.Trace:
Mode.Debug = true
+ default:
}
strategy := logStrategy()
@@ -87,7 +90,7 @@ func Start(ctx context.Context, mode Modes) {
case DailyStrategy:
_, err := os.Stat(config.Common.LogDir)
Mode.logToFile = !os.IsNotExist(err)
- Mode.logToStdout = !Mode.Server || Mode.Debug || Mode.Trace
+ Mode.logToStdout = !Mode.Server || Mode.Debug || Mode.Trace || Mode.Quiet
case StdoutStrategy:
fallthrough
default:
@@ -131,11 +134,14 @@ func Info(args ...interface{}) string {
// Warn message logging.
func Warn(args ...interface{}) string {
- if Mode.Server {
- return log(serverStr, warnStr, args)
+ if !Mode.Quiet {
+ if Mode.Server {
+ return log(serverStr, warnStr, args)
+ }
+ return log(clientStr, warnStr, args)
}
- return log(clientStr, warnStr, args)
+ return ""
}
// Error message logging.
diff --git a/internal/io/logger/modes.go b/internal/io/logger/modes.go
index 47dadfe..8864179 100644
--- a/internal/io/logger/modes.go
+++ b/internal/io/logger/modes.go
@@ -6,6 +6,7 @@ type Modes struct {
Trace bool
Debug bool
Nothing bool
+ Quiet bool
logToStdout bool
logToFile bool
}
diff --git a/internal/server/handlers/controlhandler.go b/internal/server/handlers/controlhandler.go
index 8cc5a40..1e17c78 100644
--- a/internal/server/handlers/controlhandler.go
+++ b/internal/server/handlers/controlhandler.go
@@ -92,9 +92,7 @@ func (h *ControlHandler) handleCommand(command string) {
case "health":
h.serverMessages <- "OK: DTail SSH Server seems fine"
h.serverMessages <- "done;"
- case "debug":
- h.serverMessages <- logger.Debug(h.user, "Receiving debug command", command, s)
default:
- h.serverMessages <- logger.Warn(h.user, "Received unknown control command", command, s)
+ h.serverMessages <- logger.Error(h.user, "Received unknown control command", command, s)
}
}
diff --git a/internal/server/handlers/readcommand.go b/internal/server/handlers/readcommand.go
index 0f9207d..5b8ce3a 100644
--- a/internal/server/handlers/readcommand.go
+++ b/internal/server/handlers/readcommand.go
@@ -31,14 +31,13 @@ func (r *readCommand) Start(ctx context.Context, argc int, args []string) {
if argc >= 4 {
deserializedRegex, err := regex.Deserialize(strings.Join(args[2:], " "))
if err != nil {
- logger.Error(err)
r.server.sendServerMessage(logger.Error(r.server.user, commandParseWarning, err))
return
}
re = deserializedRegex
}
if argc < 3 {
- r.server.sendServerMessage(logger.Warn(r.server.user, commandParseWarning, args, argc))
+ r.server.sendServerWarnMessage(logger.Warn(r.server.user, commandParseWarning, args, argc))
return
}
r.readGlob(ctx, args[1], re)
@@ -52,7 +51,7 @@ func (r *readCommand) readGlob(ctx context.Context, glob string, re regex.Regex)
for {
maxRetries--
if maxRetries < 0 {
- r.server.sendServerMessage(logger.Warn(r.server.user, "Giving up to read file(s)"))
+ r.server.sendServerWarnMessage(logger.Warn(r.server.user, "Giving up to read file(s)"))
return
}
@@ -65,7 +64,7 @@ func (r *readCommand) readGlob(ctx context.Context, glob string, re regex.Regex)
if numPaths := len(paths); numPaths == 0 {
logger.Error(r.server.user, "No such file(s) to read", glob)
- r.server.sendServerMessage(logger.Warn(r.server.user, "Unable to read file(s), check server logs"))
+ r.server.sendServerWarnMessage(logger.Warn(r.server.user, "Unable to read file(s), check server logs"))
select {
case <-ctx.Done():
return
@@ -97,7 +96,7 @@ func (r *readCommand) readFileIfPermissions(ctx context.Context, wg *sync.WaitGr
if !r.server.user.HasFilePermission(path, "readfiles") {
logger.Error(r.server.user, "No permission to read file", path, globID)
- r.server.sendServerMessage(logger.Warn(r.server.user, "Unable to read file(s), check server logs"))
+ r.server.sendServerWarnMessage(logger.Warn(r.server.user, "Unable to read file(s), check server logs"))
return
}
@@ -161,6 +160,6 @@ func (r *readCommand) makeGlobID(path, glob string) string {
return pathParts[len(pathParts)-1]
}
- r.server.sendServerMessage(logger.Error("Empty file path given?", path, glob))
+ r.server.sendServerWarnMessage(logger.Warn("Empty file path given?", path, glob))
return ""
}
diff --git a/internal/server/handlers/serverhandler.go b/internal/server/handlers/serverhandler.go
index 3212ee1..681598c 100644
--- a/internal/server/handlers/serverhandler.go
+++ b/internal/server/handlers/serverhandler.go
@@ -43,7 +43,7 @@ type ServerHandler struct {
ackCloseReceived chan struct{}
activeCommands int32
activeReaders int32
- quiet bool
+ quiet bool
}
// NewServerHandler returns the server handler.
@@ -299,7 +299,7 @@ func (h *ServerHandler) handleUserCommand(ctx context.Context, argc int, args []
func (h *ServerHandler) handleAckCommand(argc int, args []string) {
if argc < 3 {
- h.sendServerMessage(logger.Warn(h.user, commandParseWarning, args, argc))
+ h.sendServerWarnMessage(logger.Warn(h.user, commandParseWarning, args, argc))
return
}
if args[1] == "close" && args[2] == "connection" {
@@ -318,6 +318,13 @@ func (h *ServerHandler) sendServerMessage(message string) {
h.send(h.serverMessageC(), message)
}
+func (h *ServerHandler) sendServerWarnMessage(message string) {
+ if h.quiet {
+ return
+ }
+ h.send(h.serverMessageC(), message)
+}
+
func (h *ServerHandler) serverMessageC() chan<- string {
return h.serverMessages
}