From d427574824a1a4b6a5a0e15a3696f3df1c698424 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Tue, 5 Sep 2023 14:39:21 +0300 Subject: Add `custom1` and `custom2` log formats. --- internal/mapr/logformat/custom1.go | 16 ++++++++++++++++ internal/mapr/logformat/custom2.go | 16 ++++++++++++++++ internal/mapr/logformat/parser.go | 16 ++++++++++++++-- 3 files changed, 46 insertions(+), 2 deletions(-) create mode 100644 internal/mapr/logformat/custom1.go create mode 100644 internal/mapr/logformat/custom2.go (limited to 'internal/mapr') 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) } } -- cgit v1.2.3