Skip to content

Commit 38745f6

Browse files
authored
Merge pull request #1143 from PapaPiya/fix_data_race
fix syslog detail
2 parents 392ea51 + 9644a7e commit 38745f6

File tree

2 files changed

+24
-4
lines changed

2 files changed

+24
-4
lines changed

parser/syslog/syslog.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -146,14 +146,14 @@ func (p *SyslogParser) Parse(lines []string) ([]Data, error) {
146146

147147
if p.facilityDetail {
148148
if v, ok := parseResult.Data[Facility]; ok {
149-
code, _ := v.(int)
150-
parseResult.Data[Facility] = syslog.MessageFacilities[code]
149+
code, _ := v.(uint8)
150+
parseResult.Data[Facility] = syslog.MessageFacilities[int(code)]
151151
}
152152
}
153153
if p.severityDetail {
154154
if v, ok := parseResult.Data[Severity]; ok {
155-
code, _ := v.(int)
156-
parseResult.Data[Severity] = syslog.MessageSeverities[code]
155+
code, _ := v.(uint8)
156+
parseResult.Data[Severity] = syslog.MessageSeverities[int(code)]
157157
}
158158
}
159159
if parseResult.Err != nil {

parser/syslog/syslog_test.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99

1010
"github.com/stretchr/testify/assert"
1111

12+
"github.com/qiniu/logkit/utils/parse/syslog"
1213
"github.com/qiniu/logkit/conf"
1314
. "github.com/qiniu/logkit/parser/config"
1415
. "github.com/qiniu/logkit/utils/models"
@@ -226,3 +227,22 @@ func TestSyslogParser_ParseYear(t *testing.T) {
226227
assert.Equal(t, time.Now().Month().String(), dt["timestamp"].(time.Time).Month().String())
227228
}
228229
}
230+
231+
func TestSyslogParser_Detail(t *testing.T) {
232+
c := conf.MapConf{}
233+
c[KeyParserType] = "syslog"
234+
c[KeySeverityDetail] = "true"
235+
c[KeyFacilityDetail] = "true"
236+
p, err := NewParser(c)
237+
assert.Nil(t, err)
238+
lines := []string{
239+
`<34>Oct 11 22:14:15 mymachine very.large.syslog.message.tag: 'su root' failed for lonvick on /dev/pts/8`,
240+
}
241+
dts, err := p.Parse(lines)
242+
assert.Nil(t, err)
243+
ndata, err := p.Parse([]string{PandoraParseFlushSignal})
244+
assert.Nil(t, err)
245+
dts = append(dts, ndata...)
246+
assert.Equal(t, syslog.MessageFacilities[4], dts[0][Facility])
247+
assert.Equal(t, syslog.MessageSeverities[2], dts[0][Severity])
248+
}

0 commit comments

Comments
 (0)