func ErrorMsg(ctx ...interface{}) {
	logError(defaultLogger, errorStatus, time.Now(), nil, ctx...)
}
Output an error log with no actual error value
package lumber
import (
	"fmt"
	"log"
	"os"
	"time"
	"github.com/pkg/errors"
)
const (
	successStatus string = "   SUCCESS   "
	fatalStatus   string = "    FATAL    "
	errorStatus   string = "    ERROR    "
	warningStatus string = "   WARNING   "
	infoStatus    string = "    INFO     "
	debugStatus   string = "    DEBUG    "
)
var defaultLogger = NewCustomLogger()
func logNormal(config Logger, stat string, t time.Time, ctx ...interface{}) {
	out := format(config, stat, t, separateWithSpaces(ctx...))
	log.New(config.NormalOut, "", 0).Println(out)
}
func logError(config Logger, stat string, t time.Time, err error, ctx ...interface{}) {
	var out string
	if config.ShowStack && err != nil {
		out = format(
			config,
			stat,
			t,
			fmt.Sprintf(
				"%v\n--- Stack Trace ---\n%+v",
				separateWithSpaces(ctx...),
				errors.WithStack(err),
			),
		)
	} else if err == nil {
		out = format(config, stat, t, separateWithSpaces(ctx...))
	} else {
		out = format(config, stat, t, separateWithSpaces(ctx...)+"\n\n"+err.Error())
	}
	log.New(config.ErrOut, "", 0).Println(out)
}
func Success(ctx ...interface{}) {
	logNormal(defaultLogger, successStatus, time.Now(), ctx...)
}
func Info(ctx ...interface{}) {
	logNormal(defaultLogger, infoStatus, time.Now(), ctx...)
}
func Debug(ctx ...interface{}) {
	logNormal(defaultLogger, debugStatus, time.Now(), ctx...)
}
func Warning(ctx ...interface{}) {
	logNormal(defaultLogger, warningStatus, time.Now(), ctx...)
}
func Error(err error, ctx ...interface{}) {
	logError(defaultLogger, errorStatus, time.Now(), err, ctx...)
}