mirror of
https://github.com/go-admin-team/go-admin.git
synced 2026-10-13 00:50:45 +00:00
feat:update log
This commit is contained in:
@@ -13,6 +13,7 @@ type Application struct {
|
||||
DemoMsg string
|
||||
Domain string
|
||||
IsHttps bool
|
||||
Logger *Logger
|
||||
}
|
||||
|
||||
func InitApplication(cfg *viper.Viper) *Application {
|
||||
@@ -27,6 +28,12 @@ func InitApplication(cfg *viper.Viper) *Application {
|
||||
DemoMsg: cfg.GetString("demoMsg"),
|
||||
Domain: cfg.GetString("domain"),
|
||||
IsHttps: cfg.GetBool("ishttps"),
|
||||
Logger: &Logger{
|
||||
Path: cfg.GetString("logger.path"),
|
||||
Level: cfg.GetString("logger.level"),
|
||||
Stdout: cfg.GetBool("logger.stdout"),
|
||||
Enabled: cfg.GetBool("logger.enabled"),
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ import (
|
||||
var cfgDatabase *viper.Viper
|
||||
var cfgApplication *viper.Viper
|
||||
var cfgJwt *viper.Viper
|
||||
var cfgLog *viper.Viper
|
||||
var cfgLogger *viper.Viper
|
||||
var cfgSsl *viper.Viper
|
||||
var cfgGen *viper.Viper
|
||||
|
||||
@@ -48,11 +48,11 @@ func ConfigSetup(path string) {
|
||||
}
|
||||
JwtConfig = InitJwt(cfgJwt)
|
||||
|
||||
cfgLog = viper.Sub("settings.log")
|
||||
if cfgLog == nil {
|
||||
panic("config not found settings.log")
|
||||
cfgLogger = viper.Sub("settings.logger")
|
||||
if cfgLogger == nil {
|
||||
panic("config not found settings.logger")
|
||||
}
|
||||
LogConfig = InitLog(cfgLog)
|
||||
LoggerConfig = InitLog(cfgLogger)
|
||||
|
||||
cfgSsl = viper.Sub("settings.ssl")
|
||||
if cfgSsl == nil {
|
||||
|
||||
@@ -6,6 +6,7 @@ type Database struct {
|
||||
Driver string
|
||||
Source string
|
||||
DBName string
|
||||
Logger *Logger
|
||||
}
|
||||
|
||||
func InitDatabase(cfg *viper.Viper) *Database {
|
||||
@@ -14,6 +15,12 @@ func InitDatabase(cfg *viper.Viper) *Database {
|
||||
Driver: cfg.GetString("driver"),
|
||||
Source: cfg.GetString("source"),
|
||||
DBName: cfg.GetString("dbname"),
|
||||
Logger: &Logger{
|
||||
Path: cfg.GetString("logger.path"),
|
||||
Level: cfg.GetString("logger.level"),
|
||||
Stdout: cfg.GetBool("logger.stdout"),
|
||||
Enabled: cfg.GetBool("logger.enabled"),
|
||||
},
|
||||
}
|
||||
return db
|
||||
}
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
package config
|
||||
|
||||
import "github.com/spf13/viper"
|
||||
|
||||
type Log struct {
|
||||
Dir string
|
||||
Operdb bool
|
||||
}
|
||||
|
||||
func InitLog(cfg *viper.Viper) *Log {
|
||||
return &Log{
|
||||
Dir: cfg.GetString("dir"),
|
||||
Operdb: cfg.GetBool("operdb"),
|
||||
}
|
||||
}
|
||||
|
||||
var LogConfig = new(Log)
|
||||
@@ -0,0 +1,21 @@
|
||||
package config
|
||||
|
||||
import "github.com/spf13/viper"
|
||||
|
||||
type Logger struct {
|
||||
Path string
|
||||
Level string
|
||||
Stdout bool
|
||||
Enabled bool
|
||||
}
|
||||
|
||||
func InitLog(cfg *viper.Viper) *Logger {
|
||||
return &Logger{
|
||||
Path: cfg.GetString("path"),
|
||||
Level: cfg.GetString("level"),
|
||||
Enabled: cfg.GetBool("enabled"),
|
||||
Stdout: cfg.GetBool("stdout"),
|
||||
}
|
||||
}
|
||||
|
||||
var LoggerConfig = new(Logger)
|
||||
+28
-49
@@ -1,61 +1,40 @@
|
||||
package tools
|
||||
|
||||
import (
|
||||
"errors"
|
||||
log "github.com/sirupsen/logrus"
|
||||
config2 "go-admin/tools/config"
|
||||
"os"
|
||||
"time"
|
||||
"github.com/gogf/gf/os/glog"
|
||||
"go-admin/global"
|
||||
"go-admin/tools/config"
|
||||
)
|
||||
|
||||
var Logger *glog.Logger
|
||||
var DBLogger *glog.Logger
|
||||
var AccessLogger *glog.Logger
|
||||
|
||||
func InitLogger() {
|
||||
log.SetFormatter(&log.TextFormatter{FieldMap: log.FieldMap{
|
||||
log.FieldKeyTime: "@timestamp",
|
||||
log.FieldKeyLevel: "@level",
|
||||
log.FieldKeyMsg: "@message"}})
|
||||
Logger = glog.New()
|
||||
Logger.SetPath(config.LoggerConfig.Path)
|
||||
Logger.Stdout(config.LoggerConfig.Stdout)
|
||||
Logger.SetFile("logger-{Ymd}.log")
|
||||
_ = Logger.SetLevelStr(config.LoggerConfig.Level)
|
||||
|
||||
switch Mode(config2.ApplicationConfig.Mode) {
|
||||
case ModeDev, ModeTest:
|
||||
log.SetOutput(os.Stdout)
|
||||
log.SetLevel(log.TraceLevel)
|
||||
case ModeProd:
|
||||
file, err := os.OpenFile(config2.LogConfig.Dir+"/api-"+time.Now().Format("2006-01-02")+".log", os.O_WRONLY|os.O_APPEND|os.O_CREATE|os.O_SYNC, 0600)
|
||||
if err != nil {
|
||||
log.Fatalln("log init failed")
|
||||
}
|
||||
Logger.Info("Logger init Success!")
|
||||
|
||||
var info os.FileInfo
|
||||
info, err = file.Stat()
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
fileWriter := logFileWriter{file, info.Size()}
|
||||
log.SetOutput(&fileWriter)
|
||||
log.SetLevel(log.WarnLevel)
|
||||
}
|
||||
DBLogger = glog.New()
|
||||
_ = DBLogger.SetPath(config.DatabaseConfig.Logger.Path)
|
||||
DBLogger.Stdout(config.DatabaseConfig.Logger.Stdout)
|
||||
DBLogger.SetFile("db-{Ymd}.log")
|
||||
_ = DBLogger.SetLevelStr(config.DatabaseConfig.Logger.Level)
|
||||
DBLogger.Info("DBLogger init Success!")
|
||||
|
||||
log.SetReportCaller(true)
|
||||
}
|
||||
AccessLogger = glog.New()
|
||||
_ = AccessLogger.SetPath(config.ApplicationConfig.Logger.Path)
|
||||
AccessLogger.Stdout(config.ApplicationConfig.Logger.Stdout)
|
||||
AccessLogger.SetFile("access-{Ymd}.log")
|
||||
_ = AccessLogger.SetLevelStr(config.ApplicationConfig.Logger.Level)
|
||||
AccessLogger.Info("AccessLogger init Success!")
|
||||
|
||||
type logFileWriter struct {
|
||||
file *os.File
|
||||
size int64
|
||||
}
|
||||
global.Logger = Logger.Line()
|
||||
global.DBLogger = DBLogger.Line()
|
||||
global.AccessLogger = AccessLogger.Line()
|
||||
|
||||
func (p *logFileWriter) Write(data []byte) (n int, err error) {
|
||||
if p == nil {
|
||||
return 0, errors.New("logFileWriter is nil")
|
||||
}
|
||||
if p.file == nil {
|
||||
return 0, errors.New("file not opened")
|
||||
}
|
||||
n, e := p.file.Write(data)
|
||||
p.size += int64(n)
|
||||
//每天一个文件
|
||||
if p.file.Name() != config2.LogConfig.Dir+"/api-"+time.Now().Format("2006-01-02")+".log" {
|
||||
p.file.Close()
|
||||
p.file, _ = os.OpenFile(config2.LogConfig.Dir+"/api-"+time.Now().Format("2006-01-02")+".log", os.O_WRONLY|os.O_APPEND|os.O_CREATE|os.O_SYNC, 0600)
|
||||
p.size = 0
|
||||
}
|
||||
return n, e
|
||||
}
|
||||
|
||||
+2
-3
@@ -1,7 +1,6 @@
|
||||
package tools
|
||||
|
||||
import (
|
||||
log "github.com/sirupsen/logrus"
|
||||
"golang.org/x/crypto/bcrypt"
|
||||
"strconv"
|
||||
)
|
||||
@@ -19,7 +18,7 @@ func StrToInt(err error, index string) int {
|
||||
func CompareHashAndPassword(e string, p string) (bool, error) {
|
||||
err := bcrypt.CompareHashAndPassword([]byte(e), []byte(p))
|
||||
if err != nil {
|
||||
log.Print(err.Error())
|
||||
Logger.Print(err.Error())
|
||||
return false, err
|
||||
}
|
||||
return true, nil
|
||||
@@ -51,7 +50,7 @@ func HasError(err error, msg string, code ...int) {
|
||||
if msg == "" {
|
||||
msg = err.Error()
|
||||
}
|
||||
log.Println(err)
|
||||
Logger.Println(err)
|
||||
panic("CustomError#" + strconv.Itoa(statusCode) + "#" + msg)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user