diff --git a/internal/aghos/syslog.go b/internal/aghos/syslog.go index a67a5635..a38b3e68 100644 --- a/internal/aghos/syslog.go +++ b/internal/aghos/syslog.go @@ -1,6 +1,6 @@ package aghos // ConfigureSyslog reroutes standard logger output to syslog. -func ConfigureSyslog(serviceName string) error { +func ConfigureSyslog(serviceName string) (err error) { return configureSyslog(serviceName) } diff --git a/internal/aghos/syslog_others.go b/internal/aghos/syslog_others.go index 1659ae49..9c72e66d 100644 --- a/internal/aghos/syslog_others.go +++ b/internal/aghos/syslog_others.go @@ -8,11 +8,15 @@ import ( "github.com/AdguardTeam/golibs/log" ) -func configureSyslog(serviceName string) error { +// configureSyslog sets standard log output to syslog. +func configureSyslog(serviceName string) (err error) { w, err := syslog.New(syslog.LOG_NOTICE|syslog.LOG_USER, serviceName) if err != nil { + // Don't wrap the error, because it's informative enough as is. return err } + log.SetOutput(w) + return nil } diff --git a/internal/aghos/syslog_windows.go b/internal/aghos/syslog_windows.go index c8e86e78..0a78b28d 100644 --- a/internal/aghos/syslog_windows.go +++ b/internal/aghos/syslog_windows.go @@ -19,23 +19,30 @@ func (w *eventLogWriter) Write(b []byte) (int, error) { return len(b), w.el.Info(1, string(b)) } -func configureSyslog(serviceName string) error { - // Note that the eventlog src is the same as the service name - // Otherwise, we will get "the description for event id cannot be found" warning in every log record +// configureSyslog sets standard log output to event log. +func configureSyslog(serviceName string) (err error) { + // Note that the eventlog src is the same as the service name, otherwise we + // will get "the description for event id cannot be found" warning in every + // log record. // Continue if we receive "registry key already exists" or if we get // ERROR_ACCESS_DENIED so that we can log without administrative permissions // for pre-existing eventlog sources. - if err := eventlog.InstallAsEventCreate(serviceName, eventlog.Info|eventlog.Warning|eventlog.Error); err != nil { - if !strings.Contains(err.Error(), "registry key already exists") && err != windows.ERROR_ACCESS_DENIED { - return err - } + err = eventlog.InstallAsEventCreate(serviceName, eventlog.Info|eventlog.Warning|eventlog.Error) + if err != nil && + !strings.Contains(err.Error(), "registry key already exists") && + err != windows.ERROR_ACCESS_DENIED { + // Don't wrap the error, because it's informative enough as is. + return err } + el, err := eventlog.Open(serviceName) if err != nil { + // Don't wrap the error, because it's informative enough as is. return err } log.SetOutput(&eventLogWriter{el: el}) + return nil }