diff --git a/log/log.go b/log/log.go index 5a75271..61ac38c 100644 --- a/log/log.go +++ b/log/log.go @@ -147,6 +147,19 @@ func Tracef(format string, args ...interface{}) { createLog(e) } +// Trace prints out logs on trace level with newline +func Traceln(args ...interface{}) { + output := fmt.Sprintln(args...) + e := Entry{ + Timestamp: time.Now(), + Output: output, + File: fileInfo(2), + Level: "TRACE", + level: LTrace, + } + createLog(e) +} + // Debug prints out logs on debug level func Debug(args ...interface{}) { output := fmt.Sprint(args...) @@ -173,6 +186,19 @@ func Debugf(format string, args ...interface{}) { createLog(e) } +// Debug prints out logs on debug level with a newline +func Debugln(args ...interface{}) { + output := fmt.Sprintln(args...) + e := Entry{ + Timestamp: time.Now(), + Output: output, + File: fileInfo(2), + Level: "DEBUG", + level: LDebug, + } + createLog(e) +} + // Info prints out logs on info level func Info(args ...interface{}) { output := fmt.Sprint(args...) @@ -199,6 +225,19 @@ func Infof(format string, args ...interface{}) { createLog(e) } +// Info prints out logs on info level with a newline +func Infoln(args ...interface{}) { + output := fmt.Sprintln(args...) + e := Entry{ + Timestamp: time.Now(), + Output: output, + File: fileInfo(2), + Level: "INFO", + level: LInfo, + } + createLog(e) +} + // Info prints out logs on info level func Notice(args ...interface{}) { output := fmt.Sprint(args...) @@ -225,6 +264,19 @@ func Noticef(format string, args ...interface{}) { createLog(e) } +// Info prints out logs on info level with a newline +func Noticeln(args ...interface{}) { + output := fmt.Sprintln(args...) + e := Entry{ + Timestamp: time.Now(), + Output: output, + File: fileInfo(2), + Level: "NOTICE", + level: LNotice, + } + createLog(e) +} + // Warn prints out logs on warn level func Warn(args ...interface{}) { output := fmt.Sprint(args...) @@ -251,6 +303,19 @@ func Warnf(format string, args ...interface{}) { createLog(e) } +// Newline print for Warn +func Warnln(args ...interface{}) { + output := fmt.Sprintln(args...) + e := Entry{ + Timestamp: time.Now(), + Output: output, + File: fileInfo(2), + Level: "WARN", + level: LWarn, + } + createLog(e) +} + // Error prints out logs on error level func Error(args ...interface{}) { output := fmt.Sprint(args...) @@ -277,6 +342,19 @@ func Errorf(format string, args ...interface{}) { createLog(e) } +// Error prints out logs on error level with a newline +func Errorln(args ...interface{}) { + output := fmt.Sprintln(args...) + e := Entry{ + Timestamp: time.Now(), + Output: output, + File: fileInfo(2), + Level: "ERROR", + level: LError, + } + createLog(e) +} + // Panic prints out logs on panic level func Panic(args ...interface{}) { output := fmt.Sprint(args...) @@ -323,6 +401,28 @@ func Panicf(format string, args ...interface{}) { panic(errors.New(output)) } +func Panicln(args ...interface{}) { + output := fmt.Sprintln(args...) + e := Entry{ + Timestamp: time.Now(), + Output: output, + File: fileInfo(2), + Level: "PANIC", + level: LPanic, + } + createLog(e) + if len(args) >= 0 { + switch args[0].(type) { + case error: + panic(args[0]) + default: + // falls through to default below + } + } + Flush() + panic(errors.New(output)) +} + // Fatal prints out logs on fatal level func Fatal(args ...interface{}) { output := fmt.Sprint(args...) @@ -353,6 +453,32 @@ func Fatalf(format string, args ...interface{}) { os.Exit(1) } +func Fatalln(args ...interface{}) { + output := fmt.Sprintln(args...) + e := Entry{ + Timestamp: time.Now(), + Output: output, + File: fileInfo(2), + Level: "FATAL", + level: LFatal, + } + createLog(e) + Flush() + os.Exit(1) +} + +func Print(args ...interface{}) { + Info(args...) +} + +func Printf(format string, args ...interface{}) { + Infof(format, args...) +} + +func Println(args ...interface{}) { + Infoln(args...) +} + // fileInfo for getting which line in which file func fileInfo(skip int) string { _, file, line, ok := runtime.Caller(skip) diff --git a/log/log_test.go b/log/log_test.go index ea62d66..7c2fcf6 100644 --- a/log/log_test.go +++ b/log/log_test.go @@ -86,6 +86,15 @@ func TestInfo(t *testing.T) { // } } +// Print prints out logs on info level +func TestPrint(t *testing.T) { + // if logLevel >= LInfo { + // entry := logger.WithFields(logrus.Fields{}) + // entry.Data["file"] = fileInfo(2) + // entry.Info(args...) + // } +} + // Warn prints out logs on warn level func TestWarn(t *testing.T) { // if logLevel >= LWarn { @@ -121,6 +130,7 @@ func TestPanic(t *testing.T) { // entry.Panic(args...) // } } + func TestFlush(t *testing.T) { defer Flush() } diff --git a/log/logger.go b/log/logger.go index 27edeb7..8c6045c 100644 --- a/log/logger.go +++ b/log/logger.go @@ -37,6 +37,19 @@ func (l Logger) Tracef(format string, args ...interface{}) { createLog(e) } +// Trace prints out logs on trace level with newline +func (l Logger) Traceln(args ...interface{}) { + output := fmt.Sprintln(args...) + e := Entry{ + Timestamp: time.Now(), + Output: output, + File: fileInfo(l.FileInfoDepth), + Level: "TRACE", + level: LTrace, + } + createLog(e) +} + // Debug prints out logs on debug level func (l Logger) Debug(args ...interface{}) { output := fmt.Sprint(args...) @@ -89,7 +102,20 @@ func (l Logger) Infof(format string, args ...interface{}) { createLog(e) } -// Info prints out logs on info level +// Info prints out logs on info level with newline +func (l Logger) Infoln(args ...interface{}) { + output := fmt.Sprintln(args...) + e := Entry{ + Timestamp: time.Now(), + Output: output, + File: fileInfo(l.FileInfoDepth), + Level: "INFO", + level: LInfo, + } + createLog(e) +} + +// Notice prints out logs on notice level func (l Logger) Notice(args ...interface{}) { output := fmt.Sprint(args...) e := Entry{ @@ -102,7 +128,7 @@ func (l Logger) Notice(args ...interface{}) { createLog(e) } -// Formatted print for Info +// Formatted print for Notice func (l Logger) Noticef(format string, args ...interface{}) { output := fmt.Sprintf(format, args...) e := Entry{ @@ -115,6 +141,19 @@ func (l Logger) Noticef(format string, args ...interface{}) { createLog(e) } +// Notice prints out logs on notice level with newline +func (l Logger) Noticeln(args ...interface{}) { + output := fmt.Sprintln(args...) + e := Entry{ + Timestamp: time.Now(), + Output: output, + File: fileInfo(l.FileInfoDepth), + Level: "NOTICE", + level: LNotice, + } + createLog(e) +} + // Warn prints out logs on warn level func (l Logger) Warn(args ...interface{}) { output := fmt.Sprint(args...) @@ -141,6 +180,19 @@ func (l Logger) Warnf(format string, args ...interface{}) { createLog(e) } +// Warn prints out logs on warn level with a newline +func (l Logger) Warnln(args ...interface{}) { + output := fmt.Sprintln(args...) + e := Entry{ + Timestamp: time.Now(), + Output: output, + File: fileInfo(l.FileInfoDepth), + Level: "WARN", + level: LWarn, + } + createLog(e) +} + // Error prints out logs on error level func (l Logger) Error(args ...interface{}) { output := fmt.Sprint(args...) @@ -167,6 +219,19 @@ func (l Logger) Errorf(format string, args ...interface{}) { createLog(e) } +// Error prints out logs on error level with a new line +func (l Logger) Errorln(args ...interface{}) { + output := fmt.Sprintln(args...) + e := Entry{ + Timestamp: time.Now(), + Output: output, + File: fileInfo(l.FileInfoDepth), + Level: "ERROR", + level: LError, + } + createLog(e) +} + // Panic prints out logs on panic level func (l Logger) Panic(args ...interface{}) { output := fmt.Sprint(args...) @@ -213,6 +278,29 @@ func (l Logger) Panicf(format string, args ...interface{}) { panic(errors.New(output)) } +// Panic prints out logs on panic level with a newline +func (l Logger) Panicln(args ...interface{}) { + output := fmt.Sprintln(args...) + e := Entry{ + Timestamp: time.Now(), + Output: output, + File: fileInfo(l.FileInfoDepth), + Level: "PANIC", + level: LPanic, + } + createLog(e) + if len(args) >= 0 { + switch args[0].(type) { + case error: + panic(args[0]) + default: + // falls through to default below + } + } + Flush() + panic(errors.New(output)) +} + // Fatal prints out logs on fatal level func (l Logger) Fatal(args ...interface{}) { output := fmt.Sprint(args...) @@ -242,3 +330,33 @@ func (l Logger) Fatalf(format string, args ...interface{}) { Flush() os.Exit(1) } + +// Fatal prints fatal level with a new line +func (l Logger) Fatalln(args ...interface{}) { + output := fmt.Sprintln(args...) + e := Entry{ + Timestamp: time.Now(), + Output: output, + File: fileInfo(l.FileInfoDepth), + Level: "FATAL", + level: LFatal, + } + createLog(e) + Flush() + os.Exit(1) +} + +// Handles print to info +func (l Logger) Print(args ...interface{}) { + l.Info(args...) +} + +// Handles formatted print to info +func (l Logger) Printf(format string, args ...interface{}) { + l.Infof(format, args...) +} + +// Handles print to info with new line +func (l Logger) Println(args ...interface{}) { + l.Infoln(args...) +}