From 5e58383a32ed16c5f9562a819bcce93c9b0ffe85 Mon Sep 17 00:00:00 2001 From: Raffaele Sena Date: Mon, 24 Nov 2014 07:51:35 -0800 Subject: [PATCH] There is no log/syslog package for windows. Providing a dummy syslogger (but actually it logs to stdout) --- logger/syslog.go | 3 +++ logger/syslog_test.go | 2 ++ logger/syslog_windows.go | 52 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 57 insertions(+) create mode 100644 logger/syslog_windows.go diff --git a/logger/syslog.go b/logger/syslog.go index 99cfaba1..4ce69c95 100644 --- a/logger/syslog.go +++ b/logger/syslog.go @@ -1,4 +1,7 @@ // Copyright 2012-2014 Apcera Inc. All rights reserved. + +// +build !windows + package logger import ( diff --git a/logger/syslog_test.go b/logger/syslog_test.go index f7a5e543..84924e67 100644 --- a/logger/syslog_test.go +++ b/logger/syslog_test.go @@ -1,3 +1,5 @@ +// +build !windows + package logger import ( diff --git a/logger/syslog_windows.go b/logger/syslog_windows.go new file mode 100644 index 00000000..f6f17c82 --- /dev/null +++ b/logger/syslog_windows.go @@ -0,0 +1,52 @@ +// Copyright 2012-2014 Apcera Inc. All rights reserved. +package logger + +import ( + "fmt" + "log" + "os" +) + +type SysLogger struct { + writer *log.Logger + debug bool + trace bool +} + +func NewSysLogger(debug, trace bool) *SysLogger { + w := log.New(os.Stdout, "gnatsd", log.LstdFlags) + + return &SysLogger{ + writer: w, + debug: debug, + trace: trace, + } +} + +func NewRemoteSysLogger(fqn string, debug, trace bool) *SysLogger { + return NewSysLogger(debug, trace) +} + +func (l *SysLogger) Noticef(format string, v ...interface{}) { + l.writer.Println("NOTICE", fmt.Sprintf(format, v...)) +} + +func (l *SysLogger) Fatalf(format string, v ...interface{}) { + l.writer.Println("CRITICAL", fmt.Sprintf(format, v...)) +} + +func (l *SysLogger) Errorf(format string, v ...interface{}) { + l.writer.Println("ERROR", fmt.Sprintf(format, v...)) +} + +func (l *SysLogger) Debugf(format string, v ...interface{}) { + if l.debug { + l.writer.Println("DEBUG", fmt.Sprintf(format, v...)) + } +} + +func (l *SysLogger) Tracef(format string, v ...interface{}) { + if l.trace { + l.writer.Println("NOTICE", fmt.Sprintf(format, v...)) + } +}