mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2025-10-29 23:32:24 -05:00
Add optional syslog logrus hook (#343)
* add optional syslog logrus hook * document syslog
This commit is contained in:
parent
909f801742
commit
c111b239f7
38 changed files with 2242 additions and 37 deletions
45
vendor/gopkg.in/mcuadros/go-syslog.v2/format/rfc6587.go
generated
vendored
Normal file
45
vendor/gopkg.in/mcuadros/go-syslog.v2/format/rfc6587.go
generated
vendored
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
package format
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"bytes"
|
||||
"strconv"
|
||||
|
||||
"gopkg.in/mcuadros/go-syslog.v2/internal/syslogparser/rfc5424"
|
||||
)
|
||||
|
||||
type RFC6587 struct{}
|
||||
|
||||
func (f *RFC6587) GetParser(line []byte) LogParser {
|
||||
return &parserWrapper{rfc5424.NewParser(line)}
|
||||
}
|
||||
|
||||
func (f *RFC6587) GetSplitFunc() bufio.SplitFunc {
|
||||
return rfc6587ScannerSplit
|
||||
}
|
||||
|
||||
func rfc6587ScannerSplit(data []byte, atEOF bool) (advance int, token []byte, err error) {
|
||||
if atEOF && len(data) == 0 {
|
||||
return 0, nil, nil
|
||||
}
|
||||
|
||||
if i := bytes.IndexByte(data, ' '); i > 0 {
|
||||
pLength := data[0:i]
|
||||
length, err := strconv.Atoi(string(pLength))
|
||||
if err != nil {
|
||||
if string(data[0:1]) == "<" {
|
||||
// Assume this frame uses non-transparent-framing
|
||||
return len(data), data, nil
|
||||
}
|
||||
return 0, nil, err
|
||||
}
|
||||
end := length + i + 1
|
||||
if len(data) >= end {
|
||||
// Return the frame with the length removed
|
||||
return end, data[i+1 : end], nil
|
||||
}
|
||||
}
|
||||
|
||||
// Request more data
|
||||
return 0, nil, nil
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue