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