2014-02-12 19:54:09 +00: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 05:14:54 +00:00
|
|
|
"fmt"
|
2014-05-26 00:11:25 +00:00
|
|
|
"os"
|
2014-06-20 05:14:54 +00:00
|
|
|
"path"
|
2014-05-26 00:11:25 +00:00
|
|
|
|
2014-02-12 19:54:09 +00:00
|
|
|
"github.com/gogits/logs"
|
|
|
|
)
|
|
|
|
|
2014-03-25 11:47:04 +00:00
|
|
|
var (
|
2014-06-20 05:14:54 +00:00
|
|
|
loggers []*logs.BeeLogger
|
|
|
|
GitLogger *logs.BeeLogger
|
2014-03-25 11:47:04 +00:00
|
|
|
)
|
2014-02-12 19:54:09 +00:00
|
|
|
|
2014-03-23 16:32:16 +00:00
|
|
|
func init() {
|
2014-04-01 04:07:25 +00:00
|
|
|
NewLogger(0, "console", `{"level": 0}`)
|
2014-03-23 16:32:16 +00:00
|
|
|
}
|
|
|
|
|
2014-03-19 08:08:25 +00:00
|
|
|
func NewLogger(bufLen int64, mode, config string) {
|
2014-05-11 18:37:12 +00: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 20:36:50 +00:00
|
|
|
logger.SetLogFuncCallDepth(3)
|
2014-06-20 04:25:23 +00:00
|
|
|
if err := logger.SetLogger(mode, config); err != nil {
|
|
|
|
Fatal("Fail to set logger(%s): %v", mode, err)
|
|
|
|
}
|
2014-02-12 19:54:09 +00:00
|
|
|
}
|
|
|
|
|
2014-06-20 05:14:54 +00: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 22:48:02 +00:00
|
|
|
func Trace(format string, v ...interface{}) {
|
2014-05-11 18:37:12 +00:00
|
|
|
for _, logger := range loggers {
|
|
|
|
logger.Trace(format, v...)
|
|
|
|
}
|
2014-02-18 22:48:02 +00:00
|
|
|
}
|
|
|
|
|
2014-03-23 16:16:17 +00:00
|
|
|
func Debug(format string, v ...interface{}) {
|
2014-05-11 18:37:12 +00:00
|
|
|
for _, logger := range loggers {
|
|
|
|
logger.Debug(format, v...)
|
|
|
|
}
|
2014-03-23 16:16:17 +00:00
|
|
|
}
|
|
|
|
|
2014-02-12 19:54:09 +00:00
|
|
|
func Info(format string, v ...interface{}) {
|
2014-05-11 18:37:12 +00:00
|
|
|
for _, logger := range loggers {
|
|
|
|
logger.Info(format, v...)
|
|
|
|
}
|
2014-02-12 19:54:09 +00:00
|
|
|
}
|
2014-02-18 22:31:16 +00:00
|
|
|
|
|
|
|
func Error(format string, v ...interface{}) {
|
2014-05-11 18:37:12 +00:00
|
|
|
for _, logger := range loggers {
|
|
|
|
logger.Error(format, v...)
|
|
|
|
}
|
2014-02-18 22:31:16 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func Warn(format string, v ...interface{}) {
|
2014-05-11 18:37:12 +00:00
|
|
|
for _, logger := range loggers {
|
|
|
|
logger.Warn(format, v...)
|
|
|
|
}
|
2014-02-18 22:31:16 +00:00
|
|
|
}
|
2014-02-18 22:48:02 +00:00
|
|
|
|
|
|
|
func Critical(format string, v ...interface{}) {
|
2014-05-11 18:37:12 +00:00
|
|
|
for _, logger := range loggers {
|
|
|
|
logger.Critical(format, v...)
|
|
|
|
}
|
2014-02-18 22:48:02 +00:00
|
|
|
}
|
2014-05-26 00:11:25 +00:00
|
|
|
|
|
|
|
func Fatal(format string, v ...interface{}) {
|
|
|
|
Error(format, v...)
|
|
|
|
for _, l := range loggers {
|
|
|
|
l.Close()
|
|
|
|
}
|
|
|
|
os.Exit(2)
|
|
|
|
}
|