mirror of
https://github.com/go-admin-team/go-admin.git
synced 2026-09-20 17:57:54 +00:00
feat: add global & logger
This commit is contained in:
@@ -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
@@ -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
@@ -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,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"
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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()
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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
@@ -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
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
}
|
||||||
|
|||||||
@@ -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})
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package orm
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/jinzhu/gorm"
|
||||||
|
)
|
||||||
|
|
||||||
|
var Eloquent *gorm.DB
|
||||||
|
var MysqlConn string
|
||||||
|
|
||||||
+1
-1
@@ -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
@@ -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
@@ -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()
|
||||||
|
}
|
||||||
|
|||||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -1,7 +1,7 @@
|
|||||||
package models
|
package models
|
||||||
|
|
||||||
import (
|
import (
|
||||||
orm "go-admin/database"
|
"go-admin/global/orm"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -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
@@ -1,7 +1,7 @@
|
|||||||
package models
|
package models
|
||||||
|
|
||||||
import (
|
import (
|
||||||
orm "go-admin/database"
|
"go-admin/global/orm"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -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"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -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,7 +1,7 @@
|
|||||||
package tools
|
package tools
|
||||||
|
|
||||||
import (
|
import (
|
||||||
orm "go-admin/database"
|
"go-admin/global/orm"
|
||||||
"go-admin/models"
|
"go-admin/models"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -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,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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
@@ -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,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,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"
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -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"
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -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
@@ -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
@@ -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
@@ -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"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user