Skip to content

Commit 4b2aa34

Browse files
dkorunicmjuraga
authored andcommitted
BUG/MINOR: log: logrus hook rfc5424 bugfixes
1 parent 35b9d0a commit 4b2aa34

File tree

1 file changed

+14
-76
lines changed

1 file changed

+14
-76
lines changed

log/rfc5424.go

Lines changed: 14 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import (
2525

2626
type RFC5424Hook struct {
2727
syslog *syslog5424.Syslog
28+
sender *syslog5424.Sender
2829
msgID string
2930
}
3031

@@ -67,89 +68,26 @@ func NewRFC5424Hook(opts Target) (logrus.Hook, error) {
6768
return nil, fmt.Errorf("no address has been declared")
6869
}
6970

70-
var severity syslog5424.Priority
71-
switch strings.ToLower(opts.SyslogLevel) {
72-
case "debug":
73-
severity = syslog5424.LogDEBUG
74-
case "info":
75-
severity = syslog5424.LogINFO
76-
case "notice":
77-
severity = syslog5424.LogNOTICE
78-
case "warning":
79-
severity = syslog5424.LogWARNING
80-
case "error":
81-
severity = syslog5424.LogERR
82-
case "critical":
83-
severity = syslog5424.LogCRIT
84-
case "alert":
85-
severity = syslog5424.LogALERT
86-
case "emergency":
87-
severity = syslog5424.LogEMERG
88-
default:
89-
return nil, fmt.Errorf("unrecognized severity: %s", opts.SyslogLevel)
90-
}
91-
92-
var facility syslog5424.Priority
93-
switch opts.SyslogFacility {
94-
case "kern":
95-
facility = syslog5424.LogKERN
96-
case "user":
97-
facility = syslog5424.LogUSER
98-
case "mail":
99-
facility = syslog5424.LogMAIL
100-
case "daemon":
101-
facility = syslog5424.LogDAEMON
102-
case "auth":
103-
facility = syslog5424.LogAUTH
104-
case "syslog":
105-
facility = syslog5424.LogSYSLOG
106-
case "lpr":
107-
facility = syslog5424.LogLPR
108-
case "news":
109-
facility = syslog5424.LogNEWS
110-
case "uucp":
111-
facility = syslog5424.LogUUCP
112-
case "cron":
113-
facility = syslog5424.LogCRON
114-
case "authpriv":
115-
facility = syslog5424.LogAUTHPRIV
116-
case "ftp":
117-
facility = syslog5424.LogFTP
118-
case "local0":
119-
facility = syslog5424.LogLOCAL0
120-
case "local1":
121-
facility = syslog5424.LogLOCAL1
122-
case "local2":
123-
facility = syslog5424.LogLOCAL2
124-
case "local3":
125-
facility = syslog5424.LogLOCAL3
126-
case "local4":
127-
facility = syslog5424.LogLOCAL4
128-
case "local5":
129-
facility = syslog5424.LogLOCAL5
130-
case "local6":
131-
facility = syslog5424.LogLOCAL6
132-
case "local7":
133-
facility = syslog5424.LogLOCAL7
134-
default:
135-
return nil, fmt.Errorf("unrecognized facility: %s", opts.SyslogFacility)
71+
priority := strings.Join([]string{opts.SyslogFacility, opts.SyslogLevel}, ".")
72+
var priorityParsed syslog5424.Priority
73+
if err := priorityParsed.Set(priority); err != nil {
74+
return nil, err
13675
}
13776

138-
slConn, chErr, err := syslog5424.Dial(opts.SyslogProto, opts.SyslogAddr)
77+
slConn, _, err := syslog5424.Dial(opts.SyslogProto, opts.SyslogAddr)
13978
if err != nil {
140-
fmt.Printf("error establishing syslog output: %s\n", err)
79+
return nil, err
14180
}
14281

143-
go func(ch <-chan error) {
144-
for i := range ch {
145-
fmt.Printf("Error received from the syslog server: %s\n", i.Error())
146-
}
147-
}(chErr)
148-
149-
syslogServer, err := syslog5424.New(slConn, facility|severity, opts.SyslogTag)
82+
syslogServer, err := syslog5424.New(slConn, priorityParsed, opts.SyslogTag)
15083
if err != nil {
15184
return nil, err
15285
}
15386

154-
return &RFC5424Hook{syslog: syslogServer, msgID: opts.SyslogMsgID}, nil
87+
return &RFC5424Hook{syslog: syslogServer, sender: slConn, msgID: opts.SyslogMsgID}, nil
88+
}
89+
90+
func (r RFC5424Hook) Close() error {
91+
r.sender.End()
92+
return nil
15593
}

0 commit comments

Comments
 (0)