mirror of
https://github.com/kevin-DL/revel-cmd.git
synced 2026-01-11 10:44:28 +00:00
50 lines
1.3 KiB
Go
50 lines
1.3 KiB
Go
package utils
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"strings"
|
|
|
|
"github.com/revel/cmd/logger"
|
|
"github.com/revel/config"
|
|
)
|
|
|
|
var Logger = logger.New()
|
|
|
|
func InitLogger(basePath string, logLevel logger.LogLevel) {
|
|
newContext := config.NewContext()
|
|
if logLevel == logger.LvlDebug {
|
|
newContext.SetOption("log.debug.output", "stdout")
|
|
println("Debug on")
|
|
} else {
|
|
newContext.SetOption("log.debug.output", "off")
|
|
}
|
|
if logLevel >= logger.LvlInfo {
|
|
newContext.SetOption("log.info.output", "stdout")
|
|
} else {
|
|
newContext.SetOption("log.inf.output", "off")
|
|
}
|
|
|
|
newContext.SetOption("log.warn.output", "stderr")
|
|
newContext.SetOption("log.error.output", "stderr")
|
|
newContext.SetOption("log.crit.output", "stderr")
|
|
Logger.SetHandler(logger.InitializeFromConfig(basePath, newContext))
|
|
}
|
|
|
|
// This function is to throw a panic that may be caught by the packger so it can perform the needed
|
|
// imports.
|
|
func Retry(format string, args ...interface{}) {
|
|
// Ensure the user's command prompt starts on the next line.
|
|
if !strings.HasSuffix(format, "\n") {
|
|
format += "\n"
|
|
}
|
|
fmt.Fprintf(os.Stderr, format, args...)
|
|
panic(format) // Panic instead of os.Exit so that deferred will run.
|
|
}
|
|
|
|
type LoggedError struct{ error }
|
|
|
|
func NewLoggedError(err error) *LoggedError {
|
|
return &LoggedError{err}
|
|
}
|