123456789101112131415161718192021222324252627 |
- package axslogparser
- import (
- "strings"
- "time"
- "github.com/Songmu/go-ltsv"
- "github.com/pkg/errors"
- )
- // LTSV access log parser
- type LTSV struct {
- }
- // Parse for Parser interface
- func (lv *LTSV) Parse(line string) (*Log, error) {
- l := &Log{}
- err := ltsv.Unmarshal([]byte(line), l)
- if err != nil {
- return nil, errors.Wrapf(err, "failed to parse ltsvlog (not a ltsv): %s", line)
- }
- l.Time, _ = time.Parse(clfTimeLayout, strings.Trim(l.TimeStr, "[]"))
- if err := l.breakdownRequest(); err != nil {
- return nil, errors.Wrap(err, "failed to parse ltsvlog (invalid request): %s")
- }
- return l, nil
- }
|