summaryrefslogtreecommitdiff
path: root/internal/mapr
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2023-09-05 14:39:21 +0300
committerPaul Buetow <pbuetow@mimecast.com>2023-09-07 15:32:23 +0300
commitd427574824a1a4b6a5a0e15a3696f3df1c698424 (patch)
tree45d3bf098c2b69f4aa47fcdeac03ea67cee7c39a /internal/mapr
parentbf39452c1f9a06d9f4e6eb3a06a23068a2451ca5 (diff)
Add `custom1` and `custom2` log formats.
Diffstat (limited to 'internal/mapr')
-rw-r--r--internal/mapr/logformat/custom1.go16
-rw-r--r--internal/mapr/logformat/custom2.go16
-rw-r--r--internal/mapr/logformat/parser.go16
3 files changed, 46 insertions, 2 deletions
diff --git a/internal/mapr/logformat/custom1.go b/internal/mapr/logformat/custom1.go
new file mode 100644
index 0000000..7229f3e
--- /dev/null
+++ b/internal/mapr/logformat/custom1.go
@@ -0,0 +1,16 @@
+package logformat
+
+import "errors"
+
+var ErrCustom1NotImplemented error = errors.New("custom1 log format is not implemented")
+
+// Template for creating a custom log format.
+type custom1Parser struct{}
+
+func newCustom1Parser(hostname, timeZoneName string, timeZoneOffset int) (*custom1Parser, error) {
+ return &custom1Parser{}, ErrCustom1NotImplemented
+}
+
+func (p *custom1Parser) MakeFields(maprLine string) (map[string]string, error) {
+ return nil, ErrCustom1NotImplemented
+}
diff --git a/internal/mapr/logformat/custom2.go b/internal/mapr/logformat/custom2.go
new file mode 100644
index 0000000..262c721
--- /dev/null
+++ b/internal/mapr/logformat/custom2.go
@@ -0,0 +1,16 @@
+package logformat
+
+import "errors"
+
+var ErrCustom2NotImplemented error = errors.New("custom2 log format is not implemented")
+
+// Template for creating a custom log format.
+type custom2Parser struct{}
+
+func newCustom2Parser(hostname, timeZoneName string, timeZoneOffset int) (*custom2Parser, error) {
+ return &custom2Parser{}, ErrCustom2NotImplemented
+}
+
+func (p *custom2Parser) MakeFields(maprLine string) (map[string]string, error) {
+ return nil, ErrCustom2NotImplemented
+}
diff --git a/internal/mapr/logformat/parser.go b/internal/mapr/logformat/parser.go
index aa6416c..24290ef 100644
--- a/internal/mapr/logformat/parser.go
+++ b/internal/mapr/logformat/parser.go
@@ -2,6 +2,7 @@ package logformat
import (
"errors"
+ "fmt"
"time"
"github.com/mimecast/dtail/internal/config"
@@ -26,6 +27,7 @@ func NewParser(logFormatName string, query *mapr.Query) (Parser, error) {
now := time.Now()
timeZoneName, timeZoneOffset := now.Zone()
+ // Extend this for adding more log formats!
switch logFormatName {
case "generic":
return newGenericParser(hostname, timeZoneName, timeZoneOffset)
@@ -33,8 +35,18 @@ func NewParser(logFormatName string, query *mapr.Query) (Parser, error) {
return newGenericKVParser(hostname, timeZoneName, timeZoneOffset)
case "mimecast":
return newMimecastParser(hostname, timeZoneName, timeZoneOffset)
- default:
+ case "default":
return newDefaultParser(hostname, timeZoneName, timeZoneOffset)
-
+ case "custom1":
+ return newCustom1Parser(hostname, timeZoneName, timeZoneOffset)
+ case "custom2":
+ return newCustom2Parser(hostname, timeZoneName, timeZoneOffset)
+ default:
+ p, err := newDefaultParser(hostname, timeZoneName, timeZoneOffset)
+ if err != nil {
+ return p, fmt.Errorf("No '%s' mapr log format and problem creating default one: %v",
+ logFormatName, err)
+ }
+ return p, fmt.Errorf("No '%s' mapr log format", logFormatName)
}
}