|
@@ -12,12 +12,29 @@ import (
|
|
"git.giaever.org/joachimmg/go-log.git/errors"
|
|
"git.giaever.org/joachimmg/go-log.git/errors"
|
|
)
|
|
)
|
|
|
|
|
|
|
|
+
|
|
|
|
+func init() {
|
|
|
|
+ flag.Var(&config.Llo, "llo", "Minimum log level that will be written to stdout.")
|
|
|
|
+ flag.Var(&config.Llf, "llf", "Minimum log level that will be written to file")
|
|
|
|
+ flag.Var(&config.Ldir, "ldir", "Directory to log to")
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+var (
|
|
|
|
+ logTrace *_log.Logger
|
|
|
|
+ logInfo *_log.Logger
|
|
|
|
+ logWarning *_log.Logger
|
|
|
|
+ logError *_log.Logger
|
|
|
|
+ logPanic *_log.Logger
|
|
|
|
+)
|
|
|
|
+
|
|
|
|
+
|
|
func log_file(p config.LogPrefix) *os.File {
|
|
func log_file(p config.LogPrefix) *os.File {
|
|
- os.MkdirAll(config.LOG_DIR.String(), 0777)
|
|
+ os.MkdirAll(config.Ldir.String(), 0777)
|
|
f, err := os.OpenFile(
|
|
f, err := os.OpenFile(
|
|
- fmt.Sprintf("%s%c%s%s.log", config.LOG_DIR, os.PathSeparator, strings.ToLower(string(p)), config.FILE_EXTRA),
|
|
+ fmt.Sprintf("%s%c%s.log", config.Ldir, os.PathSeparator, strings.ToLower(string(p))),
|
|
- config.FILE_MASK,
|
|
+ config.FileMask,
|
|
- config.FILE_PERM,
|
|
+ config.FilePerm,
|
|
)
|
|
)
|
|
|
|
|
|
if err != nil {
|
|
if err != nil {
|
|
@@ -28,144 +45,163 @@ func log_file(p config.LogPrefix) *os.File {
|
|
return f
|
|
return f
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
func log_new(l config.LogLevel, h config.LogHandle, p config.LogPrefix) *_log.Logger {
|
|
func log_new(l config.LogLevel, h config.LogHandle, p config.LogPrefix) *_log.Logger {
|
|
|
|
|
|
- if (config.LOG_LEVEL_FILE&l) == config.LOG_LEVEL_FILE && (config.LOG_LEVEL_OUTPUT&l) == config.LOG_LEVEL_OUTPUT {
|
|
+ if (config.Llf&l) == config.Llf && (config.Llo&l) == config.Llo {
|
|
f := log_file(p)
|
|
f := log_file(p)
|
|
return _log.New(
|
|
return _log.New(
|
|
io.MultiWriter(f, h),
|
|
io.MultiWriter(f, h),
|
|
fmt.Sprintf("%s ", p),
|
|
fmt.Sprintf("%s ", p),
|
|
- config.LOG_FORMAT,
|
|
+ config.LogFormat,
|
|
)
|
|
)
|
|
}
|
|
}
|
|
|
|
|
|
- if (config.LOG_LEVEL_FILE & l) == config.LOG_LEVEL_FILE {
|
|
+ if (config.Llf & l) == config.Llf {
|
|
f := log_file(p)
|
|
f := log_file(p)
|
|
return _log.New(
|
|
return _log.New(
|
|
f, fmt.Sprintf("%s ", p),
|
|
f, fmt.Sprintf("%s ", p),
|
|
- config.LOG_FORMAT,
|
|
+ config.LogFormat,
|
|
)
|
|
)
|
|
}
|
|
}
|
|
|
|
|
|
- if (config.LOG_LEVEL_OUTPUT & l) == config.LOG_LEVEL_OUTPUT {
|
|
+ if (config.Llo & l) == config.Llo {
|
|
return _log.New(
|
|
return _log.New(
|
|
h, fmt.Sprintf("%s ", p),
|
|
h, fmt.Sprintf("%s ", p),
|
|
- config.LOG_FORMAT,
|
|
+ config.LogFormat,
|
|
)
|
|
)
|
|
}
|
|
}
|
|
|
|
|
|
return _log.New(
|
|
return _log.New(
|
|
- config.DISCARD_HANDLE, fmt.Sprintf("%s ", p),
|
|
+ config.DiscardHandle, fmt.Sprintf("%s ", p),
|
|
- config.LOG_FORMAT,
|
|
+ config.LogFormat,
|
|
)
|
|
)
|
|
}
|
|
}
|
|
|
|
|
|
-func init() {
|
|
+
|
|
- flag.Var(&config.LOG_LEVEL_OUTPUT, "llo", "Minimum log level that will be written to stdout.")
|
|
|
|
- flag.Var(&config.LOG_LEVEL_FILE, "llf", "Minimum log level that will be written to file")
|
|
|
|
- flag.Var(&config.LOG_DIR, "ldir", "Directory to log to")
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
func log(t config.LogLevel) *_log.Logger {
|
|
func log(t config.LogLevel) *_log.Logger {
|
|
var l *_log.Logger
|
|
var l *_log.Logger
|
|
switch t {
|
|
switch t {
|
|
- case config.TRACE:
|
|
+ case config.Trace:
|
|
- if config.Trace == nil {
|
|
+ if logTrace == nil {
|
|
- config.Trace = log_new(t, config.HANDLE_TRACE, config.PREFIX_TRACE)
|
|
+ logTrace = log_new(t, config.HandleTrace, config.PrefixTrace)
|
|
}
|
|
}
|
|
- l = config.Trace
|
|
+ l = logTrace
|
|
- case config.INFO:
|
|
+ case config.Info:
|
|
- if config.Info == nil {
|
|
+ if logInfo == nil {
|
|
- config.Info = log_new(t, config.HANDLE_INFO, config.PREFIX_INFO)
|
|
+ logInfo = log_new(t, config.HandleInfo, config.PrefixInfo)
|
|
}
|
|
}
|
|
- l = config.Info
|
|
+ l = logInfo
|
|
- case config.WARNING:
|
|
+ case config.Warning:
|
|
- if config.Warning == nil {
|
|
+ if logWarning == nil {
|
|
- config.Warning = log_new(t, config.HANDLE_WARNING, config.PREFIX_WARNING)
|
|
+ logWarning = log_new(t, config.HandleWarning, config.PrefixWarning)
|
|
}
|
|
}
|
|
- l = config.Warning
|
|
+ l = logWarning
|
|
- case config.ERROR:
|
|
+ case config.Error:
|
|
- if config.Error == nil {
|
|
+ if logError == nil {
|
|
- config.Error = log_new(t, config.HANDLE_ERROR, config.PREFIX_ERROR)
|
|
+ logError = log_new(t, config.HandleError, config.PrefixError)
|
|
}
|
|
}
|
|
- l = config.Error
|
|
+ l = logError
|
|
- case config.PANIC:
|
|
+ case config.Panic:
|
|
- if config.Panic == nil {
|
|
+ if logPanic == nil {
|
|
- config.Panic = log_new(t, config.HANDLE_ERROR, config.PREFIX_PANIC)
|
|
+ logPanic = log_new(t, config.HandlePanic, config.PrefixPanic)
|
|
}
|
|
}
|
|
- l = config.Panic
|
|
+ l = logPanic
|
|
}
|
|
}
|
|
|
|
|
|
if l == nil {
|
|
if l == nil {
|
|
- _log.Panic(errors.UNKNOWN_LOGGER.Error())
|
|
+ _log.Panic(errors.UnknownLogger.Error())
|
|
}
|
|
}
|
|
|
|
|
|
return l
|
|
return l
|
|
}
|
|
}
|
|
|
|
|
|
-func LLO() *config.LogLevel {
|
|
+
|
|
- return &config.LOG_LEVEL_OUTPUT
|
|
+func Llo() *config.LogLevel {
|
|
|
|
+ return &config.Llo
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+func Llf() *config.LogLevel {
|
|
|
|
+ return &config.Llf
|
|
}
|
|
}
|
|
|
|
|
|
-func LLF() *config.LogLevel {
|
|
+
|
|
- return &config.LOG_LEVEL_FILE
|
|
+func Ldir() *config.LogDir {
|
|
|
|
+ return &config.Ldir
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
func Trace(m string) {
|
|
func Trace(m string) {
|
|
- log(config.TRACE).Print(m)
|
|
+ log(config.Trace).Print(m)
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
func Tracef(f string, v ...interface{}) {
|
|
func Tracef(f string, v ...interface{}) {
|
|
- log(config.TRACE).Printf(f, v...)
|
|
+ log(config.Trace).Printf(f, v...)
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
func Traceln(v ...interface{}) {
|
|
func Traceln(v ...interface{}) {
|
|
- log(config.TRACE).Println(v...)
|
|
+ log(config.Trace).Println(v...)
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
func Info(m string) {
|
|
func Info(m string) {
|
|
- log(config.INFO).Print(m)
|
|
+ log(config.Info).Print(m)
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
func Infof(f string, v ...interface{}) {
|
|
func Infof(f string, v ...interface{}) {
|
|
- log(config.INFO).Printf(f, v...)
|
|
+ log(config.Info).Printf(f, v...)
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
func Infoln(v ...interface{}) {
|
|
func Infoln(v ...interface{}) {
|
|
- log(config.INFO).Println(v...)
|
|
+ log(config.Info).Println(v...)
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
func Warning(m string) {
|
|
func Warning(m string) {
|
|
- log(config.WARNING).Print(m)
|
|
+ log(config.Warning).Print(m)
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
func Warningf(f string, v ...interface{}) {
|
|
func Warningf(f string, v ...interface{}) {
|
|
- log(config.WARNING).Printf(f, v...)
|
|
+ log(config.Warning).Printf(f, v...)
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
func Warningln(v ...interface{}) {
|
|
func Warningln(v ...interface{}) {
|
|
- log(config.WARNING).Println(v...)
|
|
+ log(config.Warning).Println(v...)
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+
|
|
func Error(m string) {
|
|
func Error(m string) {
|
|
- log(config.ERROR).Fatal(m)
|
|
+ log(config.Error).Fatal(m)
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
func Errorf(f string, v ...interface{}) {
|
|
func Errorf(f string, v ...interface{}) {
|
|
- log(config.ERROR).Fatalf(f, v...)
|
|
+ log(config.Error).Fatalf(f, v...)
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
func Errorln(v ...interface{}) {
|
|
func Errorln(v ...interface{}) {
|
|
- log(config.ERROR).Fatalln(v...)
|
|
+ log(config.Error).Fatalln(v...)
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
func Panic(m string) {
|
|
func Panic(m string) {
|
|
- log(config.PANIC).Panic(m)
|
|
+ log(config.Panic).Panic(m)
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
func Panicf(f string, v ...interface{}) {
|
|
func Panicf(f string, v ...interface{}) {
|
|
- log(config.PANIC).Panicf(f, v...)
|
|
+ log(config.Panic).Panicf(f, v...)
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
func Panicln(v ...interface{}) {
|
|
func Panicln(v ...interface{}) {
|
|
- log(config.PANIC).Panicln(v...)
|
|
+ log(config.Panic).Panicln(v...)
|
|
}
|
|
}
|