zfscmd: avoid word "error" in info-level log lines (#873)
A number of tools including `lnav` do a crude string matching against the word "error". For zrepl this results in benign lines being colored red. It would be better if the logged message was something like "command ran successfully". refs - #872 --------- Co-authored-by: Christian Schwarz <me@cschwarz.com>
This commit is contained in:
@@ -23,7 +23,7 @@ type RuntimeLine struct {
|
|||||||
Error string
|
Error string
|
||||||
}
|
}
|
||||||
|
|
||||||
var humanFormatterLineRE = regexp.MustCompile(`^(\[[^\]]+\]){2}\[zfs.cmd\]\[[^\]]+\]:\s+command\s+exited\s+(with|without)\s+error\s+(.+)`)
|
var humanFormatterLineRE = regexp.MustCompile(`^(\[[^\]]+\]){2}\[zfs.cmd\]\[[^\]]+\]:\s+command\s+exited\s+with\s+(success|error)\s+(.+)`)
|
||||||
|
|
||||||
func parseSecs(s string) (time.Duration, error) {
|
func parseSecs(s string) (time.Duration, error) {
|
||||||
d, err := time.ParseDuration(s + "s")
|
d, err := time.ParseDuration(s + "s")
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ func TestParseHumanFormatter(t *testing.T) {
|
|||||||
tcs := []testCase{
|
tcs := []testCase{
|
||||||
{
|
{
|
||||||
Name: "human-formatter-noerror",
|
Name: "human-formatter-noerror",
|
||||||
Input: `2020-04-04T00:00:05+02:00 [DEBG][jobname][zfs.cmd][task$stack$span.stack]: command exited without error usertime_s="0.008445" cmd="zfs list -H -p -o name -r -t filesystem,volume" systemtime_s="0.033783" invocation="84" total_time_s="0.037828619"`,
|
Input: `2020-04-04T00:00:05+02:00 [DEBG][jobname][zfs.cmd][task$stack$span.stack]: command exited with success usertime_s="0.008445" cmd="zfs list -H -p -o name -r -t filesystem,volume" systemtime_s="0.033783" invocation="84" total_time_s="0.037828619"`,
|
||||||
Expect: &RuntimeLine{
|
Expect: &RuntimeLine{
|
||||||
Cmd: "zfs list -H -p -o name -r -t filesystem,volume",
|
Cmd: "zfs list -H -p -o name -r -t filesystem,volume",
|
||||||
TotalTime: secs("0.037828619"),
|
TotalTime: secs("0.037828619"),
|
||||||
@@ -54,7 +54,7 @@ func TestParseHumanFormatter(t *testing.T) {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
Name: "from graylog",
|
Name: "from graylog",
|
||||||
Input: `2020-04-04T00:00:05+02:00 [DEBG][csnas][zfs.cmd][task$stack$span.stack]: command exited without error usertime_s="0" cmd="zfs send -i zroot/ezjail/synapse-12@zrepl_20200329_095518_000 zroot/ezjail/synapse-12@zrepl_20200329_102454_000" total_time_s="0.101598591" invocation="85" systemtime_s="0.041581"`,
|
Input: `2020-04-04T00:00:05+02:00 [DEBG][csnas][zfs.cmd][task$stack$span.stack]: command exited with success usertime_s="0" cmd="zfs send -i zroot/ezjail/synapse-12@zrepl_20200329_095518_000 zroot/ezjail/synapse-12@zrepl_20200329_102454_000" total_time_s="0.101598591" invocation="85" systemtime_s="0.041581"`,
|
||||||
Expect: &RuntimeLine{
|
Expect: &RuntimeLine{
|
||||||
Cmd: "zfs send -i zroot/ezjail/synapse-12@zrepl_20200329_095518_000 zroot/ezjail/synapse-12@zrepl_20200329_102454_000",
|
Cmd: "zfs send -i zroot/ezjail/synapse-12@zrepl_20200329_095518_000 zroot/ezjail/synapse-12@zrepl_20200329_102454_000",
|
||||||
TotalTime: secs("0.101598591"),
|
TotalTime: secs("0.101598591"),
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ func waitPostLogging(c *Cmd, u usage, err error, now time.Time) {
|
|||||||
WithField("usertime_s", u.user_secs)
|
WithField("usertime_s", u.user_secs)
|
||||||
|
|
||||||
if err == nil {
|
if err == nil {
|
||||||
log.Info("command exited without error")
|
log.Info("command exited with success")
|
||||||
} else {
|
} else {
|
||||||
log.WithError(err).Info("command exited with error")
|
log.WithError(err).Info("command exited with error")
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user