func TestSyslogLogger(t *testing.T) { tests := getSyslogLoggerTests() addr, err := net.ResolveUDPAddr("udp", ":2000") if err != nil { t.Errorf("Expected '%v' Got '%v'", nil, err) } conn, err := net.ListenUDP("udp", addr) if err != nil { t.Errorf("Expected '%v' Got '%v'", nil, err) } defer conn.Close() sLog, err := New("udp", "127.0.0.1:2000", "", nil) if err != nil { t.Errorf("Expected '%v' Got '%v'", nil, err) } sLog.SetDisplayColor(false) sLog.SetBuffersAndWorkers(3, 3) sLog.SetTimestampFormat("MST") log.SetCallerInfoLevels(log.WarnLevel, log.ErrorLevel, log.PanicLevel, log.AlertLevel, log.FatalLevel) log.RegisterHandler(sLog, log.AllLevels...) for i, tt := range tests { var l log.LeveledLogger if tt.flds != nil { l = log.WithFields(tt.flds...) } else { l = log.Logger } switch tt.lvl { case log.DebugLevel: if len(tt.printf) == 0 { l.Debug(tt.msg) } else { l.Debugf(tt.printf, tt.msg) } case log.TraceLevel: if len(tt.printf) == 0 { l.Trace(tt.msg).End() } else { l.Tracef(tt.printf, tt.msg).End() } case log.InfoLevel: if len(tt.printf) == 0 { l.Info(tt.msg) } else { l.Infof(tt.printf, tt.msg) } case log.NoticeLevel: if len(tt.printf) == 0 { l.Notice(tt.msg) } else { l.Noticef(tt.printf, tt.msg) } case log.WarnLevel: if len(tt.printf) == 0 { l.Warn(tt.msg) } else { l.Warnf(tt.printf, tt.msg) } case log.ErrorLevel: if len(tt.printf) == 0 { l.Error(tt.msg) } else { l.Errorf(tt.printf, tt.msg) } case log.PanicLevel: func() { defer func() { recover() }() if len(tt.printf) == 0 { l.Panic(tt.msg) } else { l.Panicf(tt.printf, tt.msg) } }() case log.AlertLevel: if len(tt.printf) == 0 { l.Alert(tt.msg) } else { l.Alertf(tt.printf, tt.msg) } } if s := hasString(conn); !strings.HasSuffix(s, tt.want) { if tt.lvl == log.TraceLevel { if !strings.Contains(s, tt.want) { t.Errorf("test %d: Contains Suffix '%s' Got '%s'", i, tt.want, s) } continue } t.Errorf("test %d: Expected Suffix '%s' Got '%s'", i, tt.want, s) } } }
func TestConsoleLogger(t *testing.T) { tests := getConsoleLoggerTests() buff := new(bytes.Buffer) cLog := New() cLog.SetWriter(buff) cLog.SetDisplayColor(false) cLog.SetBuffersAndWorkers(3, 0) cLog.SetTimestampFormat("MST") log.SetCallerInfoLevels(log.WarnLevel, log.ErrorLevel, log.PanicLevel, log.AlertLevel, log.FatalLevel) log.RegisterHandler(cLog, log.AllLevels...) for i, tt := range tests { buff.Reset() var l log.LeveledLogger if tt.flds != nil { l = log.WithFields(tt.flds...) } else { l = log.Logger } switch tt.lvl { case log.DebugLevel: if len(tt.printf) == 0 { l.Debug(tt.msg) } else { l.Debugf(tt.printf, tt.msg) } case log.TraceLevel: if len(tt.printf) == 0 { l.Trace(tt.msg).End() } else { l.Tracef(tt.printf, tt.msg).End() } case log.InfoLevel: if len(tt.printf) == 0 { l.Info(tt.msg) } else { l.Infof(tt.printf, tt.msg) } case log.NoticeLevel: if len(tt.printf) == 0 { l.Notice(tt.msg) } else { l.Noticef(tt.printf, tt.msg) } case log.WarnLevel: if len(tt.printf) == 0 { l.Warn(tt.msg) } else { l.Warnf(tt.printf, tt.msg) } case log.ErrorLevel: if len(tt.printf) == 0 { l.Error(tt.msg) } else { l.Errorf(tt.printf, tt.msg) } case log.PanicLevel: func() { defer func() { recover() }() if len(tt.printf) == 0 { l.Panic(tt.msg) } else { l.Panicf(tt.printf, tt.msg) } }() case log.AlertLevel: if len(tt.printf) == 0 { l.Alert(tt.msg) } else { l.Alertf(tt.printf, tt.msg) } } if buff.String() != tt.want { if tt.lvl == log.TraceLevel { if !strings.HasPrefix(buff.String(), tt.want) { t.Errorf("test %d: Expected '%s' Got '%s'", i, tt.want, buff.String()) } continue } t.Errorf("test %d: Expected '%s' Got '%s'", i, tt.want, buff.String()) } } }
func TestSyslogLoggerColor(t *testing.T) { tests := getSyslogLoggerColorTests() addr, err := net.ResolveUDPAddr("udp", ":2001") if err != nil { t.Errorf("Expected '%v' Got '%v'", nil, err) } conn, err := net.ListenUDP("udp", addr) if err != nil { t.Errorf("Expected '%v' Got '%s'", nil, err) } defer conn.Close() sLog, err := New("udp", "127.0.0.1:2001", "", nil) if err != nil { t.Errorf("Expected '%v' Got '%s'", nil, err) } sLog.SetDisplayColor(true) sLog.SetBuffersAndWorkers(3, 3) sLog.SetTimestampFormat("MST") log.RegisterHandler(sLog, log.AllLevels...) for i, tt := range tests { var l log.LeveledLogger if tt.flds != nil { l = log.WithFields(tt.flds...) } else { l = log.Logger } switch tt.lvl { case log.DebugLevel: if len(tt.printf) == 0 { l.Debug(tt.msg) } else { l.Debugf(tt.printf, tt.msg) } case log.TraceLevel: if len(tt.printf) == 0 { l.Trace(tt.msg).End() } else { l.Tracef(tt.printf, tt.msg).End() } case log.InfoLevel: if len(tt.printf) == 0 { l.Info(tt.msg) } else { l.Infof(tt.printf, tt.msg) } case log.NoticeLevel: if len(tt.printf) == 0 { l.Notice(tt.msg) } else { l.Noticef(tt.printf, tt.msg) } case log.WarnLevel: if len(tt.printf) == 0 { l.Warn(tt.msg) } else { l.Warnf(tt.printf, tt.msg) } case log.ErrorLevel: if len(tt.printf) == 0 { l.Error(tt.msg) } else { l.Errorf(tt.printf, tt.msg) } case log.PanicLevel: func() { defer func() { recover() }() if len(tt.printf) == 0 { l.Panic(tt.msg) } else { l.Panicf(tt.printf, tt.msg) } }() case log.AlertLevel: if len(tt.printf) == 0 { l.Alert(tt.msg) } else { l.Alertf(tt.printf, tt.msg) } } if s := hasString(conn); !strings.HasSuffix(s, tt.want) { if tt.lvl == log.TraceLevel { if !strings.Contains(s, tt.want) { t.Errorf("test %d: Expected Contains '%s' Got '%s'", i, tt.want, s) } continue } t.Errorf("test %d: Expected Suffix '%s' Got '%s'", i, tt.want, s) } } e := &log.Entry{ Level: log.FatalLevel, Message: "fatal", Timestamp: time.Now().UTC(), Line: 259, File: "syslog_test.go", } log.HandleEntry(e) if s := hasString(conn); !strings.Contains(s, "UTC [31m[4m[5m FATAL[0m syslog_test.go:259 fatal\n") { t.Errorf("test fatal: Expected Contains '%s' Got '%s'", "UTC [31m[4m[5m FATAL[0m syslog_test.go:259 fatal\n", s) } }