feat: add global & logger

This commit is contained in:
zhangwenjian
2020-06-19 22:09:49 +08:00
parent 7db16d04dd
commit b77f4b5a1b
43 changed files with 200 additions and 181 deletions
+1 -1
View File
@@ -7,7 +7,7 @@ import (
"go-admin/models" "go-admin/models"
"go-admin/tools" "go-admin/tools"
"go-admin/tools/app" "go-admin/tools/app"
"log" log "github.com/sirupsen/logrus"
) )
// @Summary 列表数据 // @Summary 列表数据
+9 -13
View File
@@ -4,22 +4,21 @@ import (
"context" "context"
"fmt" "fmt"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
log "github.com/sirupsen/logrus"
"github.com/spf13/cobra" "github.com/spf13/cobra"
"github.com/spf13/viper" "github.com/spf13/viper"
"go-admin/database" "go-admin/database"
"go-admin/global/orm"
"go-admin/router" "go-admin/router"
"go-admin/tools" "go-admin/tools"
config2 "go-admin/tools/config" config2 "go-admin/tools/config"
"io/ioutil" "io/ioutil"
"log"
"net/http" "net/http"
"os" "os"
"os/signal" "os/signal"
"time" "time"
) )
var ( var (
config string config string
port string port string
@@ -46,7 +45,7 @@ func init() {
func usage() { func usage() {
usageStr := `starting api server` usageStr := `starting api server`
fmt.Printf("%s\n", usageStr) log.Printf("%s\n", usageStr)
} }
func setup() { func setup() {
@@ -58,7 +57,6 @@ func setup() {
//3. 初始化数据库链接 //3. 初始化数据库链接
database.Setup() database.Setup()
} }
func run() error { func run() error {
@@ -71,12 +69,11 @@ func run() error {
r := router.InitRouter() r := router.InitRouter()
defer database.Eloquent.Close() defer orm.Eloquent.Close()
if port != "" { if port != "" {
config2.SetConfig(config, "settings.application.port", port) config2.SetConfig(config, "settings.application.port", port)
} }
srv := &http.Server{ srv := &http.Server{
Addr: config2.ApplicationConfig.Host + ":" + config2.ApplicationConfig.Port, Addr: config2.ApplicationConfig.Host + ":" + config2.ApplicationConfig.Port,
Handler: r, Handler: r,
@@ -95,16 +92,15 @@ func run() error {
} }
}() }()
content, _ := ioutil.ReadFile("./static/go-admin.txt") content, _ := ioutil.ReadFile("./static/go-admin.txt")
log.Println(string(content)) fmt.Println(string(content))
log.Println("Server Run http://127.0.0.1:" + config2.ApplicationConfig.Port + "/") fmt.Printf("%s Server Run http://127.0.0.1:%s/ \r\n", tools.GetCurrntTimeStr(), config2.ApplicationConfig.Port)
log.Println("Swagger URL http://127.0.0.1:" + config2.ApplicationConfig.Port + "/swagger/index.html") fmt.Printf("%s Swagger URL http://127.0.0.1:%s/swagger/index.html \r\n", tools.GetCurrntTimeStr(), config2.ApplicationConfig.Port)
fmt.Printf("%s Enter Control + C Shutdown Server \r\n", tools.GetCurrntTimeStr())
log.Println("Enter Control + C Shutdown Server")
// 等待中断信号以优雅地关闭服务器(设置 5 秒的超时时间) // 等待中断信号以优雅地关闭服务器(设置 5 秒的超时时间)
quit := make(chan os.Signal) quit := make(chan os.Signal)
signal.Notify(quit, os.Interrupt) signal.Notify(quit, os.Interrupt)
<-quit <-quit
log.Println("Shutdown Server ...") fmt.Printf("%s Shutdown Server ... \r\n", tools.GetCurrntTimeStr())
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel() defer cancel()
+1 -1
View File
@@ -5,7 +5,7 @@ import (
"github.com/spf13/cobra" "github.com/spf13/cobra"
"go-admin/cmd/api" "go-admin/cmd/api"
"go-admin/cmd/migrate" "go-admin/cmd/migrate"
"log" log "github.com/sirupsen/logrus"
"os" "os"
) )
+2 -2
View File
@@ -2,13 +2,13 @@ package migrate
import ( import (
"fmt" "fmt"
log "github.com/sirupsen/logrus"
"go-admin/database" "go-admin/database"
orm "go-admin/database" "go-admin/global/orm"
"go-admin/models" "go-admin/models"
"go-admin/models/gorm" "go-admin/models/gorm"
"go-admin/tools" "go-admin/tools"
config2 "go-admin/tools/config" config2 "go-admin/tools/config"
"log"
"github.com/spf13/cobra" "github.com/spf13/cobra"
) )
+1
View File
@@ -12,6 +12,7 @@ settings:
key: keystring key: keystring
pem: temp/pem.pem pem: temp/pem.pem
log: log:
operdb: false
dir: temp/logs dir: temp/logs
jwt: jwt:
secret: go-admin secret: go-admin
+11
View File
@@ -0,0 +1,11 @@
package database
import "go-admin/tools/config"
func Setup() {
dbType := config.DatabaseConfig.Dbtype
if dbType == "mysql" {
var db = new(Mysql)
db.Setup()
}
}
+8
View File
@@ -0,0 +1,8 @@
package database
import "github.com/jinzhu/gorm"
type Database interface {
Open(dbType string, conn string) (db *gorm.DB, err error)
GetConnect() string
}
+34 -58
View File
@@ -4,24 +4,52 @@ import (
"bytes" "bytes"
_ "github.com/go-sql-driver/mysql" //加载mysql _ "github.com/go-sql-driver/mysql" //加载mysql
"github.com/jinzhu/gorm" "github.com/jinzhu/gorm"
log "github.com/sirupsen/logrus"
"go-admin/global/orm"
"go-admin/tools/config" "go-admin/tools/config"
"log"
"strconv" "strconv"
) )
var Eloquent *gorm.DB
var ( var (
DbType string DbType string
Host string Host string
Port int Port int
Name string Name string
Username string Username string
Password string Password string
) )
func Setup() { func (e *Mysql) Setup() {
var err error
var db Database
db = new(Mysql)
orm.MysqlConn = db.GetConnect()
log.Info(orm.MysqlConn)
orm.Eloquent, err = db.Open(DbType, orm.MysqlConn)
if err != nil {
log.Fatalf("%s connect error %v", DbType, err)
} else {
log.Printf("%s connect success!", DbType)
}
if orm.Eloquent.Error != nil {
log.Fatalf("database error %v", orm.Eloquent.Error)
}
orm.Eloquent.LogMode(true)
}
type Mysql struct {
}
func (e *Mysql) Open(dbType string, conn string) (db *gorm.DB, err error) {
return gorm.Open(dbType, conn)
}
func (e *Mysql) GetConnect() string {
DbType = config.DatabaseConfig.Dbtype DbType = config.DatabaseConfig.Dbtype
Host = config.DatabaseConfig.Host Host = config.DatabaseConfig.Host
@@ -30,38 +58,6 @@ func Setup() {
Username = config.DatabaseConfig.Username Username = config.DatabaseConfig.Username
Password = config.DatabaseConfig.Password Password = config.DatabaseConfig.Password
if DbType != "mysql" {
log.Println("db type unknow")
}
var err error
conn := GetMysqlConnect()
log.Println(conn)
var db Database
if DbType == "mysql" {
db = new(Mysql)
Eloquent, err = db.Open(DbType, conn)
} else {
panic("db type unknow")
}
if err != nil {
log.Fatalf("%s connect error %v", DbType, err)
} else {
log.Printf("%s connect success!", DbType)
}
if Eloquent.Error != nil {
log.Fatalf("database error %v", Eloquent.Error)
}
Eloquent.LogMode(true)
}
func GetMysqlConnect() string {
var conn bytes.Buffer var conn bytes.Buffer
conn.WriteString(Username) conn.WriteString(Username)
conn.WriteString(":") conn.WriteString(":")
@@ -76,23 +72,3 @@ func GetMysqlConnect() string {
conn.WriteString("?charset=utf8&parseTime=True&loc=Local&timeout=1000ms") conn.WriteString("?charset=utf8&parseTime=True&loc=Local&timeout=1000ms")
return conn.String() return conn.String()
} }
type Database interface {
Open(dbType string, conn string) (db *gorm.DB, err error)
}
type Mysql struct {
}
func (*Mysql) Open(dbType string, conn string) (db *gorm.DB, err error) {
eloquent, err := gorm.Open(dbType, conn)
return eloquent, err
}
type SqlLite struct {
}
func (*SqlLite) Open(dbType string, conn string) (db *gorm.DB, err error) {
eloquent, err := gorm.Open(dbType, conn)
return eloquent, err
}
+8
View File
@@ -5,3 +5,11 @@ package database
import ( import (
_ "github.com/jinzhu/gorm/dialects/sqlite" _ "github.com/jinzhu/gorm/dialects/sqlite"
) )
type SqlLite struct {
}
func (*SqlLite) Open(dbType string, conn string) (db *gorm.DB, err error) {
eloquent, err := gorm.Open(dbType, conn)
return eloquent, err
}
+14
View File
@@ -0,0 +1,14 @@
package global
import (
"github.com/sirupsen/logrus"
)
var RequestLogger = &logrus.Entry{}
func init() {
// TODO: requestLogger log format
// RequestLogger = logrus.WithFields(logrus.Fields{"request_id": request_id, "user_ip": user_ip})
}
+9
View File
@@ -0,0 +1,9 @@
package orm
import (
"github.com/jinzhu/gorm"
)
var Eloquent *gorm.DB
var MysqlConn string
+1 -1
View File
@@ -7,7 +7,7 @@ import (
"go-admin/models" "go-admin/models"
jwt "go-admin/pkg/jwtauth" jwt "go-admin/pkg/jwtauth"
"go-admin/tools" "go-admin/tools"
"log" log "github.com/sirupsen/logrus"
"net/http" "net/http"
) )
+1 -1
View File
@@ -3,7 +3,7 @@ package handler
import ( import (
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
jwt "go-admin/pkg/jwtauth" jwt "go-admin/pkg/jwtauth"
"log" log "github.com/sirupsen/logrus"
"net/http" "net/http"
) )
+55 -52
View File
@@ -2,16 +2,14 @@ package middleware
import ( import (
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
"go-admin/models" "go-admin/models"
"go-admin/tools" "go-admin/tools"
config2 "go-admin/tools/config"
"strings" "strings"
"time" "time"
) )
//实例化
var logger = logrus.New()
// 日志记录到文件 // 日志记录到文件
func LoggerToFile() gin.HandlerFunc { func LoggerToFile() gin.HandlerFunc {
@@ -41,9 +39,8 @@ func LoggerToFile() gin.HandlerFunc {
clientIP := c.ClientIP() clientIP := c.ClientIP()
// 日志格式 // 日志格式
logger.Infof("%s [%s] %3d %13v %15s %s %s \r\n", log.Infof(" %s %3d %13v %15s %s %s \r\n",
startTime.Format("2006-01-02 15:04:05.9999"), startTime.Format("2006-01-02 15:04:05.9999"),
strings.ToUpper(logger.Level.String()),
statusCode, statusCode,
latencyTime, latencyTime,
clientIP, clientIP,
@@ -51,52 +48,58 @@ func LoggerToFile() gin.HandlerFunc {
reqUri, reqUri,
) )
if c.Request.Method != "GET" && c.Request.Method != "OPTIONS" { if c.Request.Method != "GET" && c.Request.Method != "OPTIONS" && config2.LogConfig.Operdb {
menu := models.Menu{} SetDBOperLog(c, clientIP, statusCode, reqUri, reqMethod, latencyTime)
menu.Path = reqUri
menu.Action = reqMethod
menuList, _ := menu.Get()
sysOperLog := models.SysOperLog{}
sysOperLog.OperIp = clientIP
sysOperLog.OperLocation = tools.GetLocation(clientIP)
sysOperLog.Status = tools.IntToString(statusCode)
sysOperLog.OperName = tools.GetUserName(c)
sysOperLog.RequestMethod = c.Request.Method
sysOperLog.OperUrl = reqUri
if reqUri == "/login" {
sysOperLog.BusinessType = "10"
sysOperLog.Title = "用户登录"
sysOperLog.OperName = "-"
} else if strings.Contains(reqUri, "/api/v1/logout") {
sysOperLog.BusinessType = "11"
} else if strings.Contains(reqUri, "/api/v1/getCaptcha") {
sysOperLog.BusinessType = "12"
sysOperLog.Title = "验证码"
} else {
if reqMethod == "POST" {
sysOperLog.BusinessType = "1"
} else if reqMethod == "PUT" {
sysOperLog.BusinessType = "2"
} else if reqMethod == "DELETE" {
sysOperLog.BusinessType = "3"
}
}
sysOperLog.Method = reqMethod
if len(menuList) > 0 {
sysOperLog.Title = menuList[0].Title
}
b, _ := c.Get("body")
sysOperLog.OperParam, _ = tools.StructToJsonStr(b)
sysOperLog.CreateBy = tools.GetUserName(c)
sysOperLog.OperTime = tools.GetCurrntTime()
sysOperLog.LatencyTime = (latencyTime).String()
sysOperLog.UserAgent = c.Request.UserAgent()
if c.Err() == nil {
sysOperLog.Status = "0"
} else {
sysOperLog.Status = "1"
}
_, _ = sysOperLog.Create()
} }
} }
} }
// 写入操作日志表
// 该方法后续即将弃用
func SetDBOperLog(c *gin.Context, clientIP string, statusCode int, reqUri string, reqMethod string, latencyTime time.Duration) {
menu := models.Menu{}
menu.Path = reqUri
menu.Action = reqMethod
menuList, _ := menu.Get()
sysOperLog := models.SysOperLog{}
sysOperLog.OperIp = clientIP
sysOperLog.OperLocation = tools.GetLocation(clientIP)
sysOperLog.Status = tools.IntToString(statusCode)
sysOperLog.OperName = tools.GetUserName(c)
sysOperLog.RequestMethod = c.Request.Method
sysOperLog.OperUrl = reqUri
if reqUri == "/login" {
sysOperLog.BusinessType = "10"
sysOperLog.Title = "用户登录"
sysOperLog.OperName = "-"
} else if strings.Contains(reqUri, "/api/v1/logout") {
sysOperLog.BusinessType = "11"
} else if strings.Contains(reqUri, "/api/v1/getCaptcha") {
sysOperLog.BusinessType = "12"
sysOperLog.Title = "验证码"
} else {
if reqMethod == "POST" {
sysOperLog.BusinessType = "1"
} else if reqMethod == "PUT" {
sysOperLog.BusinessType = "2"
} else if reqMethod == "DELETE" {
sysOperLog.BusinessType = "3"
}
}
sysOperLog.Method = reqMethod
if len(menuList) > 0 {
sysOperLog.Title = menuList[0].Title
}
b, _ := c.Get("body")
sysOperLog.OperParam, _ = tools.StructToJsonStr(b)
sysOperLog.CreateBy = tools.GetUserName(c)
sysOperLog.OperTime = tools.GetCurrntTime()
sysOperLog.LatencyTime = (latencyTime).String()
sysOperLog.UserAgent = c.Request.UserAgent()
if c.Err() == nil {
sysOperLog.Status = "0"
} else {
sysOperLog.Status = "1"
}
_, _ = sysOperLog.Create()
}
+1 -1
View File
@@ -6,7 +6,7 @@ import (
"go-admin/pkg/jwtauth" "go-admin/pkg/jwtauth"
_ "go-admin/pkg/jwtauth" _ "go-admin/pkg/jwtauth"
"go-admin/tools" "go-admin/tools"
"log" log "github.com/sirupsen/logrus"
"net/http" "net/http"
) )
+1 -1
View File
@@ -2,7 +2,7 @@ package models
import ( import (
"errors" "errors"
orm "go-admin/database" orm "go-admin/global/orm"
"go-admin/tools" "go-admin/tools"
_ "time" _ "time"
) )
+1 -1
View File
@@ -2,7 +2,7 @@ package models
import ( import (
"errors" "errors"
orm "go-admin/database" "go-admin/global/orm"
"go-admin/tools" "go-admin/tools"
_ "time" _ "time"
) )
+1 -1
View File
@@ -2,7 +2,7 @@ package models
import ( import (
"errors" "errors"
orm "go-admin/database" "go-admin/global/orm"
"go-admin/tools" "go-admin/tools"
) )
+1 -1
View File
@@ -2,7 +2,7 @@ package models
import ( import (
"errors" "errors"
orm "go-admin/database" "go-admin/global/orm"
"go-admin/tools" "go-admin/tools"
) )
+1 -1
View File
@@ -2,7 +2,7 @@ package models
import ( import (
"fmt" "fmt"
orm "go-admin/database" "go-admin/global/orm"
config2 "go-admin/tools/config" config2 "go-admin/tools/config"
"io/ioutil" "io/ioutil"
"strings" "strings"
+1 -1
View File
@@ -1,7 +1,7 @@
package models package models
import ( import (
orm "go-admin/database" "go-admin/global/orm"
"go-admin/tools" "go-admin/tools"
) )
+1 -1
View File
@@ -1,7 +1,7 @@
package models package models
import ( import (
orm "go-admin/database" "go-admin/global/orm"
"time" "time"
) )
+1 -1
View File
@@ -2,7 +2,7 @@ package models
import ( import (
"errors" "errors"
orm "go-admin/database" "go-admin/global/orm"
"go-admin/tools" "go-admin/tools"
) )
+1 -1
View File
@@ -1,7 +1,7 @@
package models package models
import ( import (
orm "go-admin/database" "go-admin/global/orm"
"time" "time"
) )
+1 -1
View File
@@ -1,7 +1,7 @@
package models package models
import ( import (
orm "go-admin/database" "go-admin/global/orm"
"go-admin/tools" "go-admin/tools"
) )
+1 -1
View File
@@ -2,7 +2,7 @@ package models
import ( import (
"github.com/pkg/errors" "github.com/pkg/errors"
orm "go-admin/database" "go-admin/global/orm"
"go-admin/tools" "go-admin/tools"
) )
+1 -1
View File
@@ -2,7 +2,7 @@ package models
import ( import (
"fmt" "fmt"
orm "go-admin/database" "go-admin/global/orm"
) )
//sys_role_dept //sys_role_dept
+1 -1
View File
@@ -2,7 +2,7 @@ package models
import ( import (
"fmt" "fmt"
orm "go-admin/database" "go-admin/global/orm"
"go-admin/tools" "go-admin/tools"
) )
+2 -2
View File
@@ -2,10 +2,10 @@ package models
import ( import (
"errors" "errors"
orm "go-admin/database" "go-admin/global/orm"
"go-admin/tools" "go-admin/tools"
"golang.org/x/crypto/bcrypt" "golang.org/x/crypto/bcrypt"
"log" log "github.com/sirupsen/logrus"
"strings" "strings"
) )
+1 -1
View File
@@ -2,7 +2,7 @@ package tools
import ( import (
"errors" "errors"
orm "go-admin/database" "go-admin/global/orm"
config2 "go-admin/tools/config" config2 "go-admin/tools/config"
) )
+1 -1
View File
@@ -2,7 +2,7 @@ package tools
import ( import (
"errors" "errors"
orm "go-admin/database" "go-admin/global/orm"
config2 "go-admin/tools/config" config2 "go-admin/tools/config"
) )
+1 -1
View File
@@ -1,7 +1,7 @@
package tools package tools
import ( import (
orm "go-admin/database" "go-admin/global/orm"
"go-admin/models" "go-admin/models"
) )
+1 -1
View File
@@ -1,7 +1,7 @@
package tools package tools
import ( import (
orm "go-admin/database" "go-admin/global/orm"
"go-admin/models" "go-admin/models"
) )
+4 -7
View File
@@ -1,22 +1,19 @@
package mycasbin package mycasbin
import ( import (
"fmt"
"github.com/casbin/casbin/v2" "github.com/casbin/casbin/v2"
gormadapter "github.com/casbin/gorm-adapter/v2" gormadapter "github.com/casbin/gorm-adapter/v2"
"github.com/go-kit/kit/endpoint" "github.com/go-kit/kit/endpoint"
_ "github.com/go-sql-driver/mysql" _ "github.com/go-sql-driver/mysql"
"go-admin/database" log "github.com/sirupsen/logrus"
"go-admin/global/orm"
"go-admin/tools/config" "go-admin/tools/config"
) )
var Em endpoint.Middleware var Em endpoint.Middleware
func Casbin() (*casbin.Enforcer, error) { func Casbin() (*casbin.Enforcer, error) {
conn := database.GetMysqlConnect() conn := orm.MysqlConn
if config.DatabaseConfig.Dbtype == "sqlite3" {
conn = config.DatabaseConfig.Host
}
Apter, err := gormadapter.NewAdapter(config.DatabaseConfig.Dbtype, conn, true) Apter, err := gormadapter.NewAdapter(config.DatabaseConfig.Dbtype, conn, true)
if err != nil { if err != nil {
return nil, err return nil, err
@@ -28,7 +25,7 @@ func Casbin() (*casbin.Enforcer, error) {
if err := e.LoadPolicy(); err == nil { if err := e.LoadPolicy(); err == nil {
return e, err return e, err
} else { } else {
fmt.Printf("casbin rbac_model or policy init error, message: %v \r\n", err.Error()) log.Printf("casbin rbac_model or policy init error, message: %v \r\n", err.Error())
return nil, err return nil, err
} }
} }
+1 -1
View File
@@ -2,7 +2,7 @@ package cronjob
import ( import (
"github.com/robfig/cron/v3" "github.com/robfig/cron/v3"
"log" log "github.com/sirupsen/logrus"
) )
func TestJob(c *cron.Cron) { func TestJob(c *cron.Cron) {
+1 -13
View File
@@ -1,9 +1,7 @@
package logger package logger
import ( import (
"io" log "github.com/sirupsen/logrus"
"log"
"os"
) )
var ( var (
@@ -12,14 +10,4 @@ var (
Error * log.Logger Error * log.Logger
) )
func init(){
errFile,err:=os.OpenFile("errors.log",os.O_CREATE|os.O_WRONLY|os.O_APPEND,0666)
if err!=nil{
log.Fatalln("打开日志文件失败:",err)
}
Info = log.New(os.Stdout,"Info:",log.Ldate | log.Ltime | log.Lshortfile)
Warning = log.New(os.Stdout,"Warning:",log.Ldate | log.Ltime | log.Lshortfile)
Error = log.New(io.MultiWriter(os.Stderr,errFile),"Error:",log.Ldate | log.Ltime | log.Lshortfile)
}
+1 -1
View File
@@ -1,7 +1,7 @@
package models package models
import ( import (
orm "go-admin/database" "go-admin/global/orm"
"go-admin/tools" "go-admin/tools"
_ "time" _ "time"
) )
+1 -1
View File
@@ -1,7 +1,7 @@
package models package models
import ( import (
orm "go-admin/database" "go-admin/global/orm"
"go-admin/utils" "go-admin/utils"
"time" "time"
) )
+1 -1
View File
@@ -2,9 +2,9 @@ package config
import ( import (
"fmt" "fmt"
log "github.com/sirupsen/logrus"
"github.com/spf13/viper" "github.com/spf13/viper"
"io/ioutil" "io/ioutil"
"log"
"os" "os"
"strings" "strings"
) )
+2
View File
@@ -4,11 +4,13 @@ import "github.com/spf13/viper"
type Log struct { type Log struct {
Dir string Dir string
Operdb bool
} }
func InitLog(cfg *viper.Viper) *Log { func InitLog(cfg *viper.Viper) *Log {
return &Log{ return &Log{
Dir: cfg.GetString("dir"), Dir: cfg.GetString("dir"),
Operdb: cfg.GetBool("operdb"),
} }
} }
+12 -6
View File
@@ -3,18 +3,24 @@ package tools
import ( import (
"errors" "errors"
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
"github.com/spf13/viper" config2 "go-admin/tools/config"
"os" "os"
"time" "time"
) )
func InitLogger() { func InitLogger() {
switch Mode(viper.GetString("settings.application.mode")) { log.SetFormatter(&log.TextFormatter{FieldMap: log.FieldMap{
log.FieldKeyTime: "@timestamp",
log.FieldKeyLevel: "@level",
log.FieldKeyMsg: "@message"}})
switch Mode(config2.ApplicationConfig.Mode) {
case ModeDev, ModeTest: case ModeDev, ModeTest:
log.SetOutput(os.Stdout) log.SetOutput(os.Stdout)
log.SetLevel(log.TraceLevel) log.SetLevel(log.TraceLevel)
case ModeProd: case ModeProd:
file, err := os.OpenFile(viper.GetString("logger.dir")+"/api-"+time.Now().Format("2006-01-02")+".log", os.O_WRONLY|os.O_APPEND|os.O_CREATE|os.O_SYNC, 0600) 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 { if err != nil {
log.Fatalln("log init failed") log.Fatalln("log init failed")
} }
@@ -26,7 +32,7 @@ func InitLogger() {
} }
fileWriter := logFileWriter{file, info.Size()} fileWriter := logFileWriter{file, info.Size()}
log.SetOutput(&fileWriter) log.SetOutput(&fileWriter)
log.SetLevel(log.ErrorLevel) log.SetLevel(log.WarnLevel)
} }
log.SetReportCaller(true) log.SetReportCaller(true)
@@ -47,9 +53,9 @@ func (p *logFileWriter) Write(data []byte) (n int, err error) {
n, e := p.file.Write(data) n, e := p.file.Write(data)
p.size += int64(n) p.size += int64(n)
//每天一个文件 //每天一个文件
if p.file.Name() != viper.GetString("logger.dir")+"/api-"+time.Now().Format("2006-01-02")+".log" { if p.file.Name() != config2.LogConfig.Dir+"/api-"+time.Now().Format("2006-01-02")+".log" {
p.file.Close() p.file.Close()
p.file, _ = os.OpenFile(viper.GetString("logger.dir")+"/api-"+time.Now().Format("2006-01-02")+".log", os.O_WRONLY|os.O_APPEND|os.O_CREATE|os.O_SYNC, 0600) 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 p.size = 0
} }
return n, e return n, e
+1 -1
View File
@@ -4,7 +4,7 @@ import (
"fmt" "fmt"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
jwt "go-admin/pkg/jwtauth" jwt "go-admin/pkg/jwtauth"
"log" log "github.com/sirupsen/logrus"
) )
func ExtractClaims(c *gin.Context) jwt.MapClaims { func ExtractClaims(c *gin.Context) jwt.MapClaims {
+1 -1
View File
@@ -1,8 +1,8 @@
package tools package tools
import ( import (
log "github.com/sirupsen/logrus"
"golang.org/x/crypto/bcrypt" "golang.org/x/crypto/bcrypt"
"log"
"strconv" "strconv"
) )