summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArne Juul <arnej@yahooinc.com>2022-08-09 07:53:44 +0000
committerArne Juul <arnej@yahooinc.com>2022-08-09 08:24:19 +0000
commit525b66c60012c74b0746f4856c7cfbd2435aab74 (patch)
tree864f2997a79934debe04379c03c9674078375c84
parent8e5c5def940890425d8a93e8afcad0980a0571d9 (diff)
add CLI and main for vespa-logfmt
-rw-r--r--client/go/vespa-logfmt/cmd.go45
-rw-r--r--client/go/vespa-logfmt/main.go9
2 files changed, 54 insertions, 0 deletions
diff --git a/client/go/vespa-logfmt/cmd.go b/client/go/vespa-logfmt/cmd.go
new file mode 100644
index 00000000000..749cac5fa56
--- /dev/null
+++ b/client/go/vespa-logfmt/cmd.go
@@ -0,0 +1,45 @@
+// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+// vespa-logfmt command
+// Author: arnej
+
+package main
+
+import (
+ "github.com/spf13/cobra"
+ "github.com/vespa-engine/vespa/client/go/build"
+ "github.com/vespa-engine/vespa/client/go/cmd/logfmt"
+)
+
+func NewLogfmtCmd() *cobra.Command {
+ var (
+ curOptions logfmt.Options = logfmt.NewOptions()
+ )
+ cmd := &cobra.Command{
+ Use: "vespa-logfmt",
+ Short: "convert vespa.log to human-readable format",
+ Long: `vespa-logfmt takes input in the internal vespa format
+and converts it to something human-readable`,
+ Version: build.Version,
+ Run: func(cmd *cobra.Command, args []string) {
+ logfmt.RunLogfmt(&curOptions, args)
+ },
+ Args: cobra.MaximumNArgs(1),
+ }
+ cmd.Flags().VarP(&curOptions.ShowLevels, "level", "l", "turn levels on/off\n")
+ cmd.Flags().VarP(&curOptions.ShowFields, "show", "s", "turn fields shown on/off\n")
+ cmd.Flags().VarP(&curOptions.ComponentFilter, "component", "c", "select components by regexp")
+ cmd.Flags().VarP(&curOptions.MessageFilter, "message", "m", "select messages by regexp")
+ cmd.Flags().BoolVarP(&curOptions.OnlyInternal, "internal", "i", false, "select only internal components")
+ cmd.Flags().BoolVar(&curOptions.TruncateService, "truncateservice", false, "truncate service name")
+ cmd.Flags().BoolVar(&curOptions.TruncateService, "ts", false, "")
+ cmd.Flags().BoolVarP(&curOptions.FollowTail, "follow", "f", false, "follow logfile with tail -f")
+ cmd.Flags().BoolVarP(&curOptions.DequoteNewlines, "nldequote", "N", false, "dequote newlines embedded in message")
+ cmd.Flags().BoolVarP(&curOptions.TruncateComponent, "truncatecomponent", "t", false, "truncate component name")
+ cmd.Flags().BoolVar(&curOptions.TruncateComponent, "tc", false, "")
+ cmd.Flags().StringVarP(&curOptions.OnlyHostname, "host", "H", "", "select only one host")
+ cmd.Flags().StringVarP(&curOptions.OnlyPid, "pid", "p", "", "select only one process ID")
+ cmd.Flags().StringVarP(&curOptions.OnlyService, "service", "S", "", "select only one service")
+ cmd.Flags().MarkHidden("tc")
+ cmd.Flags().MarkHidden("ts")
+ return cmd
+}
diff --git a/client/go/vespa-logfmt/main.go b/client/go/vespa-logfmt/main.go
new file mode 100644
index 00000000000..90a7719a1ef
--- /dev/null
+++ b/client/go/vespa-logfmt/main.go
@@ -0,0 +1,9 @@
+// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+// Author: arnej
+
+package main
+
+func main() {
+ cobra := NewLogfmtCmd()
+ cobra.Execute()
+}