2014-02-12 14:54:09 -05:00
|
|
|
// Copyright 2014 The Gogs Authors. All rights reserved.
|
|
|
|
// Use of this source code is governed by a MIT-style
|
|
|
|
// license that can be found in the LICENSE file.
|
|
|
|
|
|
|
|
// Package log is a wrapper of logs for short calling name.
|
|
|
|
package log
|
|
|
|
|
|
|
|
import (
|
2014-06-20 00:14:54 -05:00
|
|
|
"fmt"
|
2014-05-25 19:11:25 -05:00
|
|
|
"os"
|
2014-06-20 00:14:54 -05:00
|
|
|
"path"
|
2014-05-25 19:11:25 -05:00
|
|
|
|
2014-02-12 14:54:09 -05:00
|
|
|
"github.com/gogits/logs"
|
|
|
|
)
|
|
|
|
|
2014-03-25 06:47:04 -05:00
|
|
|
var (
|
2014-06-20 00:14:54 -05:00
|
|
|
loggers []*logs.BeeLogger
|
|
|
|
GitLogger *logs.BeeLogger
|
2014-03-25 06:47:04 -05:00
|
|
|
)
|
2014-02-12 14:54:09 -05:00
|
|
|
|
2014-03-23 11:32:16 -05:00
|
|
|
func init() {
|
2014-03-31 23:07:25 -05:00
|
|
|
NewLogger(0, "console", `{"level": 0}`)
|
2014-03-23 11:32:16 -05:00
|
|
|
}
|
|
|
|
|
2014-03-19 03:08:25 -05:00
|
|
|
func NewLogger(bufLen int64, mode, config string) {
|
2014-05-11 13:37:12 -05:00
|
|
|
logger := logs.NewLogger(bufLen)
|
|
|
|
|
|
|
|
isExist := false
|
|
|
|
for _, l := range loggers {
|
|
|
|
if l.Adapter == mode {
|
|
|
|
isExist = true
|
|
|
|
l = logger
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if !isExist {
|
|
|
|
loggers = append(loggers, logger)
|
|
|
|
}
|
2014-04-10 15:36:50 -05:00
|
|
|
logger.SetLogFuncCallDepth(3)
|
2014-06-19 23:25:23 -05:00
|
|
|
if err := logger.SetLogger(mode, config); err != nil {
|
|
|
|
Fatal("Fail to set logger(%s): %v", mode, err)
|
|
|
|
}
|
2014-02-12 14:54:09 -05:00
|
|
|
}
|
|
|
|
|
2014-06-20 00:14:54 -05:00
|
|
|
func NewGitLogger(logPath string) {
|
|
|
|
os.MkdirAll(path.Dir(logPath), os.ModePerm)
|
|
|
|
GitLogger = logs.NewLogger(0)
|
|
|
|
GitLogger.SetLogger("file", fmt.Sprintf(`{"level":0,"filename":"%s","rotate":false}`, logPath))
|
|
|
|
}
|
|
|
|
|
2014-02-18 17:48:02 -05:00
|
|
|
func Trace(format string, v ...interface{}) {
|
2014-05-11 13:37:12 -05:00
|
|
|
for _, logger := range loggers {
|
|
|
|
logger.Trace(format, v...)
|
|
|
|
}
|
2014-02-18 17:48:02 -05:00
|
|
|
}
|
|
|
|
|
2014-03-23 11:16:17 -05:00
|
|
|
func Debug(format string, v ...interface{}) {
|
2014-05-11 13:37:12 -05:00
|
|
|
for _, logger := range loggers {
|
|
|
|
logger.Debug(format, v...)
|
|
|
|
}
|
2014-03-23 11:16:17 -05:00
|
|
|
}
|
|
|
|
|
2014-02-12 14:54:09 -05:00
|
|
|
func Info(format string, v ...interface{}) {
|
2014-05-11 13:37:12 -05:00
|
|
|
for _, logger := range loggers {
|
|
|
|
logger.Info(format, v...)
|
|
|
|
}
|
2014-02-12 14:54:09 -05:00
|
|
|
}
|
2014-02-18 17:31:16 -05:00
|
|
|
|
|
|
|
func Error(format string, v ...interface{}) {
|
2014-05-11 13:37:12 -05:00
|
|
|
for _, logger := range loggers {
|
|
|
|
logger.Error(format, v...)
|
|
|
|
}
|
2014-02-18 17:31:16 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
func Warn(format string, v ...interface{}) {
|
2014-05-11 13:37:12 -05:00
|
|
|
for _, logger := range loggers {
|
|
|
|
logger.Warn(format, v...)
|
|
|
|
}
|
2014-02-18 17:31:16 -05:00
|
|
|
}
|
2014-02-18 17:48:02 -05:00
|
|
|
|
|
|
|
func Critical(format string, v ...interface{}) {
|
2014-05-11 13:37:12 -05:00
|
|
|
for _, logger := range loggers {
|
|
|
|
logger.Critical(format, v...)
|
|
|
|
}
|
2014-02-18 17:48:02 -05:00
|
|
|
}
|
2014-05-25 19:11:25 -05:00
|
|
|
|
|
|
|
func Fatal(format string, v ...interface{}) {
|
|
|
|
Error(format, v...)
|
|
|
|
for _, l := range loggers {
|
|
|
|
l.Close()
|
|
|
|
}
|
|
|
|
os.Exit(2)
|
|
|
|
}
|