feat:update log

This commit is contained in:
wenjianzhang
2020-07-24 18:10:25 +08:00
parent 0768efbcb3
commit f3adadd6ef
20 changed files with 194 additions and 146 deletions
+7
View File
@@ -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"),
},
}
}
+5 -5
View File
@@ -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 {
+7
View File
@@ -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
}
-17
View File
@@ -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)
+21
View File
@@ -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
View File
@@ -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
View File
@@ -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)
}
}