调整日志库为zap。
This commit is contained in:
parent
9a8ea8d493
commit
8b8d086432
@ -2,13 +2,13 @@ package system
|
||||
|
||||
import (
|
||||
"ferry/models/system"
|
||||
"ferry/pkg/logger"
|
||||
"ferry/tools"
|
||||
"ferry/tools/app"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/gin-gonic/gin/binding"
|
||||
"github.com/google/uuid"
|
||||
log "github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
/*
|
||||
@ -265,7 +265,7 @@ func InsetSysUserAvatar(c *gin.Context) {
|
||||
guid := uuid.New().String()
|
||||
filPath := "static/uploadfile/" + guid + ".jpg"
|
||||
for _, file := range files {
|
||||
log.Println(file.Filename)
|
||||
logger.Info(file.Filename)
|
||||
// 上传文件至指定目录
|
||||
err = c.SaveUploadedFile(file, filPath)
|
||||
if err != nil {
|
||||
|
@ -4,18 +4,19 @@ import (
|
||||
"context"
|
||||
"ferry/database"
|
||||
"ferry/global/orm"
|
||||
"ferry/pkg/logger"
|
||||
"ferry/router"
|
||||
"ferry/tools"
|
||||
config2 "ferry/tools/config"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"net/http"
|
||||
"os"
|
||||
"os/signal"
|
||||
"time"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
log "github.com/sirupsen/logrus"
|
||||
"github.com/spf13/cobra"
|
||||
"github.com/spf13/viper"
|
||||
)
|
||||
@ -53,9 +54,7 @@ func setup() {
|
||||
|
||||
//1. 读取配置
|
||||
config2.ConfigSetup(config)
|
||||
//2. 设置日志
|
||||
tools.InitLogger()
|
||||
//3. 初始化数据库链接
|
||||
//2. 初始化数据库链接
|
||||
database.Setup()
|
||||
|
||||
}
|
||||
@ -73,7 +72,7 @@ func run() error {
|
||||
defer func() {
|
||||
err := orm.Eloquent.Close()
|
||||
if err != nil {
|
||||
log.Error(err)
|
||||
logger.Error(err)
|
||||
}
|
||||
}()
|
||||
|
||||
@ -90,11 +89,11 @@ func run() error {
|
||||
// 服务连接
|
||||
if config2.ApplicationConfig.IsHttps {
|
||||
if err := srv.ListenAndServeTLS(config2.SslConfig.Pem, config2.SslConfig.KeyStr); err != nil && err != http.ErrServerClosed {
|
||||
log.Fatalf("listen: %s\n", err)
|
||||
logger.Fatalf("listen: %s\n", err)
|
||||
}
|
||||
} else {
|
||||
if err := srv.ListenAndServe(); err != nil && err != http.ErrServerClosed {
|
||||
log.Fatalf("listen: %s\n", err)
|
||||
logger.Fatalf("listen: %s\n", err)
|
||||
}
|
||||
}
|
||||
}()
|
||||
@ -112,8 +111,8 @@ func run() error {
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
|
||||
defer cancel()
|
||||
if err := srv.Shutdown(ctx); err != nil {
|
||||
log.Fatal("Server Shutdown:", err)
|
||||
logger.Fatal("Server Shutdown:", err)
|
||||
}
|
||||
log.Println("Server exiting")
|
||||
logger.Info("Server exiting")
|
||||
return nil
|
||||
}
|
||||
|
@ -4,9 +4,9 @@ import (
|
||||
"errors"
|
||||
"ferry/cmd/api"
|
||||
"ferry/cmd/migrate"
|
||||
"ferry/pkg/logger"
|
||||
"os"
|
||||
|
||||
log "github.com/sirupsen/logrus"
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
@ -25,7 +25,7 @@ var rootCmd = &cobra.Command{
|
||||
PersistentPreRunE: func(*cobra.Command, []string) error { return nil },
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
usageStr := `欢迎使用 ferry,可以是用 -h 查看命令`
|
||||
log.Printf("%s\n", usageStr)
|
||||
logger.Infof("%s\n", usageStr)
|
||||
},
|
||||
}
|
||||
|
||||
|
@ -5,12 +5,10 @@ import (
|
||||
"ferry/global/orm"
|
||||
"ferry/models/gorm"
|
||||
"ferry/models/system"
|
||||
"ferry/tools"
|
||||
"ferry/pkg/logger"
|
||||
config2 "ferry/tools/config"
|
||||
"fmt"
|
||||
|
||||
log "github.com/sirupsen/logrus"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
@ -36,16 +34,14 @@ func run() {
|
||||
fmt.Println(usage)
|
||||
//1. 读取配置
|
||||
config2.ConfigSetup(config)
|
||||
//2. 设置日志
|
||||
tools.InitLogger()
|
||||
//3. 初始化数据库链接
|
||||
//2. 初始化数据库链接
|
||||
database.Setup()
|
||||
//4. 数据库迁移
|
||||
//3. 数据库迁移
|
||||
_ = migrateModel()
|
||||
log.Println("数据库结构初始化成功!")
|
||||
//5. 数据初始化完成
|
||||
logger.Info("数据库结构初始化成功!")
|
||||
//4. 数据初始化完成
|
||||
if err := system.InitDb(); err != nil {
|
||||
log.Fatalf("数据库基础数据初始化失败,%v", err)
|
||||
logger.Fatalf("数据库基础数据初始化失败,%v", err)
|
||||
}
|
||||
|
||||
usage = `数据库基础数据初始化成功`
|
||||
|
@ -31,9 +31,19 @@ settings:
|
||||
jwt:
|
||||
secret: ferry
|
||||
timeout: 3600
|
||||
ldap:
|
||||
host: 127.0.0.1
|
||||
port: 389
|
||||
log:
|
||||
dir: logs
|
||||
operdb: false
|
||||
compress: 1
|
||||
consolestdout: 1
|
||||
filestdout: 0
|
||||
level: debug
|
||||
localtime: 1
|
||||
maxage: 30
|
||||
maxbackups: 300
|
||||
maxsize: 10240
|
||||
path: ./logs/ferry.log
|
||||
redis:
|
||||
host: 127.0.0.1
|
||||
port: 6379
|
||||
|
@ -13,9 +13,6 @@ settings:
|
||||
ssl:
|
||||
key: keystring
|
||||
pem: temp/pem.pem
|
||||
log:
|
||||
operdb: false
|
||||
dir: logs
|
||||
jwt:
|
||||
secret: ferry
|
||||
timeout: 3600
|
||||
@ -40,3 +37,16 @@ settings:
|
||||
maxidleconn: 0
|
||||
maxopenconn: 20000
|
||||
domain: http://192.168.0.100:9527
|
||||
ldap:
|
||||
host: 127.0.0.1
|
||||
port: 389
|
||||
log:
|
||||
compress: 1
|
||||
consolestdout: 1
|
||||
filestdout: 1
|
||||
level: info
|
||||
localtime: 1
|
||||
maxAge: 30
|
||||
maxbackups: 300
|
||||
maxsize: 10240
|
||||
path: ./logs/ferry.log
|
||||
|
@ -3,6 +3,7 @@ package database
|
||||
import (
|
||||
"bytes"
|
||||
"ferry/global/orm"
|
||||
"ferry/pkg/logger"
|
||||
"ferry/tools/config"
|
||||
"strconv"
|
||||
|
||||
@ -10,7 +11,6 @@ import (
|
||||
|
||||
_ "github.com/go-sql-driver/mysql" //加载mysql
|
||||
"github.com/jinzhu/gorm"
|
||||
log "github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
var (
|
||||
@ -32,13 +32,13 @@ func (e *Mysql) Setup() {
|
||||
orm.Eloquent, err = db.Open(DbType, orm.MysqlConn)
|
||||
|
||||
if err != nil {
|
||||
log.Fatalf("%s connect error %v", DbType, err)
|
||||
logger.Fatalf("%s connect error %v", DbType, err)
|
||||
} else {
|
||||
log.Printf("%s connect success!", DbType)
|
||||
logger.Infof("%s connect success!", DbType)
|
||||
}
|
||||
|
||||
if orm.Eloquent.Error != nil {
|
||||
log.Fatalf("database error %v", orm.Eloquent.Error)
|
||||
logger.Fatalf("database error %v", orm.Eloquent.Error)
|
||||
}
|
||||
|
||||
// 是否开启详细日志记录
|
||||
|
@ -1,14 +0,0 @@
|
||||
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})
|
||||
}
|
3
go.mod
3
go.mod
@ -12,6 +12,7 @@ require (
|
||||
github.com/gin-contrib/cors v1.3.1 // indirect
|
||||
github.com/gin-gonic/gin v1.5.0
|
||||
github.com/go-kit/kit v0.8.0
|
||||
github.com/go-ldap/ldap/v3 v3.2.3 // indirect
|
||||
github.com/go-ole/go-ole v1.2.4 // indirect
|
||||
github.com/go-openapi/spec v0.19.7 // indirect
|
||||
github.com/go-openapi/swag v0.19.8 // indirect
|
||||
@ -34,8 +35,10 @@ require (
|
||||
github.com/swaggo/swag v1.6.5
|
||||
github.com/ugorji/go v1.1.7 // indirect
|
||||
github.com/unrolled/secure v1.0.8
|
||||
go.uber.org/zap v1.10.0
|
||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9
|
||||
gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc // indirect
|
||||
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 // indirect
|
||||
gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df
|
||||
gopkg.in/natefinch/lumberjack.v2 v2.0.0
|
||||
)
|
||||
|
17
go.sum
17
go.sum
@ -41,6 +41,8 @@ dmitri.shuralyov.com/html/belt v0.0.0-20180602232347-f7d459c86be0/go.mod h1:JLBr
|
||||
dmitri.shuralyov.com/service/change v0.0.0-20181023043359-a85b471d5412/go.mod h1:a1inKt/atXimZ4Mv927x+r7UpyzRUf4emIoiiSC2TN4=
|
||||
dmitri.shuralyov.com/state v0.0.0-20180228185332-28bcc343414c/go.mod h1:0PRwlb0D6DFvNNtx+9ybjezNCa8XF0xaYcETyp6rHWU=
|
||||
git.apache.org/thrift.git v0.0.0-20180902110319-2566ecd5d999/go.mod h1:fPE2ZNJGynbRyZ4dJvy6G277gSllfV2HJqblrnkyeyg=
|
||||
github.com/Azure/go-ntlmssp v0.0.0-20200615164410-66371956d46c h1:/IBSNwUN8+eKzUzbJPqhK839ygXJ82sde8x3ogr6R28=
|
||||
github.com/Azure/go-ntlmssp v0.0.0-20200615164410-66371956d46c/go.mod h1:chxPXzSsl7ZWRAuOIE23GDNzjWuZquvFlgA8xmpunjU=
|
||||
github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=
|
||||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
||||
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
|
||||
@ -188,12 +190,17 @@ github.com/gin-gonic/gin v1.5.0/go.mod h1:Nd6IXA8m5kNZdNEHMBd93KT+mdY3+bewLgRvmC
|
||||
github.com/gliderlabs/ssh v0.1.1/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0=
|
||||
github.com/glycerine/go-unsnap-stream v0.0.0-20180323001048-9f0cb55181dd/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE=
|
||||
github.com/glycerine/goconvey v0.0.0-20180728074245-46e3a41ad493/go.mod h1:Ogl1Tioa0aV7gstGFO7KhffUsb9M4ydbEbbxpcEDc24=
|
||||
github.com/go-asn1-ber/asn1-ber v1.5.1 h1:pDbRAunXzIUXfx4CB2QJFv5IuPiuoW+sWvr/Us009o8=
|
||||
github.com/go-asn1-ber/asn1-ber v1.5.1/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0=
|
||||
github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q=
|
||||
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
|
||||
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
|
||||
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
|
||||
github.com/go-kit/kit v0.8.0 h1:Wz+5lgoB0kkuqLEc6NVmwRknTKP6dTGbSqvhZtBI/j0=
|
||||
github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
|
||||
github.com/go-ldap/ldap v3.0.3+incompatible h1:HTeSZO8hWMS1Rgb2Ziku6b8a7qRIZZMHjsvuZyatzwk=
|
||||
github.com/go-ldap/ldap/v3 v3.2.3 h1:FBt+5w3q/vPVPb4eYMQSn+pOiz4zewPamYhlGMmc7yM=
|
||||
github.com/go-ldap/ldap/v3 v3.2.3/go.mod h1:iYS1MdmrmceOJ1QOTnRXrIs7i3kloqtmGQjRvjKpyMg=
|
||||
github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
|
||||
github.com/go-logfmt/logfmt v0.4.0 h1:MP4Eh7ZCb31lleYCFuwm0oe4/YGak+5l1vA2NOE80nA=
|
||||
github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
|
||||
@ -736,8 +743,11 @@ go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
|
||||
go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
|
||||
go.opencensus.io v0.22.4 h1:LYy1Hy3MJdrCdMwwzxA/dRok4ejH+RwNGbuoD9fCjto=
|
||||
go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
|
||||
go.uber.org/atomic v1.4.0 h1:cxzIVoETapQEqDhQu3QfnvXAV4AlzcvUCxkVUFw3+EU=
|
||||
go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
|
||||
go.uber.org/multierr v1.1.0 h1:HoEmRHQPVSqub6w2z2d2EOVs2fjyFRGyofhKuyDq0QI=
|
||||
go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
|
||||
go.uber.org/zap v1.10.0 h1:ORx85nbTijNz8ljznvCMR1ZBIPKFn3jQrag10X2AsuM=
|
||||
go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
|
||||
go4.org v0.0.0-20180809161055-417644f6feb5/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1yOyC1qaOBpL57BhE=
|
||||
golang.org/x/build v0.0.0-20190111050920-041ab4dc3f9d/go.mod h1:OWs+y06UdEOHN4y+MfF/py+xQ/tYqIWW03b70/CG9Rw=
|
||||
@ -760,6 +770,7 @@ golang.org/x/crypto v0.0.0-20200221231518-2aa609cf4a9d/go.mod h1:LzIPMQfyMNhhGPh
|
||||
golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59 h1:3zb4D3T4G8jdExgVU/95+vQXfpEPiMdCaZgmGVxjNHM=
|
||||
golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20200423211502-4bdfaf469ed5/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20200604202706-70a84ac30bf9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI=
|
||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||
@ -1082,6 +1093,8 @@ google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlba
|
||||
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
|
||||
gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc h1:2gGKlE2+asNV9m7xrywl36YYNnBG5ZQ0r/BOOxqPpmk=
|
||||
gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc/go.mod h1:m7x9LTH6d71AHyAX77c9yqWCCa3UKHcVEj9y7hAtKDk=
|
||||
gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d h1:TxyelI5cVkbREznMhfzycHdkp5cLA7DpE+GKjSslYhM=
|
||||
gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
|
||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
@ -1102,6 +1115,10 @@ gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
|
||||
gopkg.in/ini.v1 v1.42.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
|
||||
gopkg.in/ini.v1 v1.51.0 h1:AQvPpx3LzTDM0AjnIRlVFwFFGC+npRopjZxLJj6gdno=
|
||||
gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
|
||||
gopkg.in/ldap.v2 v2.5.1 h1:wiu0okdNfjlBzg6UWvd1Hn8Y+Ux17/u/4nlk4CQr6tU=
|
||||
gopkg.in/ldap.v2 v2.5.1/go.mod h1:oI0cpe/D7HRtBQl8aTg+ZmzFUAvu4lsv3eLXMLGFxWk=
|
||||
gopkg.in/natefinch/lumberjack.v2 v2.0.0 h1:1Lc07Kr7qY4U2YPouBjpCLxpiyxIVoxqXgkXLknAOE8=
|
||||
gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k=
|
||||
gopkg.in/redis.v5 v5.2.9/go.mod h1:6gtv0/+A4iM08kdRfocWYB3bLX2tebpNtfKlFT6H4mY=
|
||||
gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo=
|
||||
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
|
||||
|
@ -3,13 +3,13 @@ package handler
|
||||
import (
|
||||
"ferry/models/system"
|
||||
jwt "ferry/pkg/jwtauth"
|
||||
"ferry/pkg/logger"
|
||||
"ferry/tools"
|
||||
"net/http"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/mojocn/base64Captcha"
|
||||
"github.com/mssola/user_agent"
|
||||
log "github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
var store = base64Captcha.DefaultMemStore
|
||||
@ -71,26 +71,26 @@ func Authenticator(c *gin.Context) (interface{}, error) {
|
||||
loginlog.Status = "1"
|
||||
loginlog.Msg = "数据解析失败"
|
||||
loginlog.Username = loginVals.Username
|
||||
loginlog.Create()
|
||||
_, _ = loginlog.Create()
|
||||
return nil, jwt.ErrMissingLoginValues
|
||||
}
|
||||
loginlog.Username = loginVals.Username
|
||||
if !store.Verify(loginVals.UUID, loginVals.Code, true) {
|
||||
loginlog.Status = "1"
|
||||
loginlog.Msg = "验证码错误"
|
||||
loginlog.Create()
|
||||
_, _ = loginlog.Create()
|
||||
return nil, jwt.ErrInvalidVerificationode
|
||||
}
|
||||
|
||||
user, role, e := loginVals.GetUser()
|
||||
if e == nil {
|
||||
loginlog.Create()
|
||||
_, _ = loginlog.Create()
|
||||
return map[string]interface{}{"user": user, "role": role}, nil
|
||||
} else {
|
||||
loginlog.Status = "1"
|
||||
loginlog.Msg = "登录失败"
|
||||
loginlog.Create()
|
||||
log.Println(e.Error())
|
||||
_, _ = loginlog.Create()
|
||||
logger.Info(e.Error())
|
||||
}
|
||||
|
||||
return nil, jwt.ErrFailedAuthentication
|
||||
|
@ -2,15 +2,15 @@ package handler
|
||||
|
||||
import (
|
||||
jwt "ferry/pkg/jwtauth"
|
||||
"ferry/pkg/logger"
|
||||
"net/http"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
log "github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
func NoFound(c *gin.Context) {
|
||||
claims := jwt.ExtractClaims(c)
|
||||
log.Printf("NoRoute claims: %#v\n", claims)
|
||||
logger.Infof("NoRoute claims: %#v\n", claims)
|
||||
c.JSON(http.StatusOK, gin.H{
|
||||
"code": "404",
|
||||
"message": "not found",
|
||||
|
@ -1,10 +1,10 @@
|
||||
package middleware
|
||||
|
||||
import (
|
||||
"ferry/pkg/logger"
|
||||
"time"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
log "github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
// 日志记录到文件
|
||||
@ -36,7 +36,7 @@ func LoggerToFile() gin.HandlerFunc {
|
||||
clientIP := c.ClientIP()
|
||||
|
||||
// 日志格式
|
||||
log.Infof(" %s %3d %13v %15s %s %s \r\n",
|
||||
logger.Infof(" %s %3d %13v %15s %s %s",
|
||||
startTime.Format("2006-01-02 15:04:05.9999"),
|
||||
statusCode,
|
||||
latencyTime,
|
||||
|
@ -4,11 +4,11 @@ import (
|
||||
mycasbin "ferry/pkg/casbin"
|
||||
"ferry/pkg/jwtauth"
|
||||
_ "ferry/pkg/jwtauth"
|
||||
"ferry/pkg/logger"
|
||||
"ferry/tools"
|
||||
"net/http"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
log "github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
//权限检查中间件
|
||||
@ -20,7 +20,7 @@ func AuthCheckRole() gin.HandlerFunc {
|
||||
tools.HasError(err, "", 500)
|
||||
//检查权限
|
||||
res, err := e.Enforce(v["rolekey"], c.Request.URL.Path, c.Request.Method)
|
||||
log.Println(v["rolekey"], c.Request.URL.Path, c.Request.Method)
|
||||
logger.Info(v["rolekey"], c.Request.URL.Path, c.Request.Method)
|
||||
|
||||
tools.HasError(err, "", 500)
|
||||
|
||||
|
@ -3,10 +3,10 @@ package system
|
||||
import (
|
||||
"errors"
|
||||
"ferry/global/orm"
|
||||
"ferry/pkg/logger"
|
||||
"ferry/tools"
|
||||
"strings"
|
||||
|
||||
log "github.com/sirupsen/logrus"
|
||||
"golang.org/x/crypto/bcrypt"
|
||||
)
|
||||
|
||||
@ -303,7 +303,7 @@ func (e *SysUser) SetPwd(pwd SysUserPwd) (Result bool, err error) {
|
||||
if strings.Contains(err.Error(), "hashedPassword is not the hash of the given password") {
|
||||
tools.HasError(err, "密码错误(代码202)", 500)
|
||||
}
|
||||
log.Print(err)
|
||||
logger.Info(err)
|
||||
return
|
||||
}
|
||||
e.Password = pwd.NewPassword
|
||||
|
@ -2,16 +2,16 @@ package mycasbin
|
||||
|
||||
import (
|
||||
"ferry/global/orm"
|
||||
"ferry/pkg/logger"
|
||||
"ferry/tools/config"
|
||||
|
||||
"github.com/casbin/casbin/v2"
|
||||
gormadapter "github.com/casbin/gorm-adapter/v2"
|
||||
"github.com/go-kit/kit/endpoint"
|
||||
_ "github.com/go-sql-driver/mysql"
|
||||
log "github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
var Em endpoint.Middleware
|
||||
var _ endpoint.Middleware
|
||||
|
||||
func Casbin() (*casbin.Enforcer, error) {
|
||||
conn := orm.MysqlConn
|
||||
@ -26,7 +26,7 @@ func Casbin() (*casbin.Enforcer, error) {
|
||||
if err := e.LoadPolicy(); err == nil {
|
||||
return e, err
|
||||
} else {
|
||||
log.Printf("casbin rbac_model or policy init error, message: %v \r\n", err.Error())
|
||||
logger.Infof("casbin rbac_model or policy init error, message: %v \r\n", err.Error())
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
@ -1,19 +1,20 @@
|
||||
package cronjob
|
||||
|
||||
import (
|
||||
"ferry/pkg/logger"
|
||||
|
||||
"github.com/robfig/cron/v3"
|
||||
log "github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
func TestJob(c *cron.Cron) {
|
||||
id, err := c.AddFunc("1 * * * *", func() {
|
||||
|
||||
log.Println("Every hour on the one hour")
|
||||
logger.Info("Every hour on the one hour")
|
||||
})
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
log.Println("start error")
|
||||
logger.Info(err)
|
||||
logger.Info("start error")
|
||||
} else {
|
||||
log.Printf("Start Success; ID: %v \r\n", id)
|
||||
logger.Infof("Start Success; ID: %v \r\n", id)
|
||||
}
|
||||
}
|
||||
|
@ -1,13 +1,121 @@
|
||||
/*
|
||||
@Author : lanyulei
|
||||
*/
|
||||
|
||||
package logger
|
||||
|
||||
import (
|
||||
log "github.com/sirupsen/logrus"
|
||||
"os"
|
||||
"time"
|
||||
|
||||
"gopkg.in/natefinch/lumberjack.v2"
|
||||
|
||||
"github.com/spf13/viper"
|
||||
"go.uber.org/zap"
|
||||
"go.uber.org/zap/zapcore"
|
||||
)
|
||||
|
||||
var (
|
||||
Info *log.Logger
|
||||
Warning *log.Logger
|
||||
Error * log.Logger
|
||||
)
|
||||
// error logger
|
||||
var log *zap.SugaredLogger
|
||||
|
||||
var levelMap = map[string]zapcore.Level{
|
||||
"debug": zapcore.DebugLevel,
|
||||
"info": zapcore.InfoLevel,
|
||||
"warn": zapcore.WarnLevel,
|
||||
"error": zapcore.ErrorLevel,
|
||||
"dpanic": zapcore.DPanicLevel,
|
||||
"panic": zapcore.PanicLevel,
|
||||
"fatal": zapcore.FatalLevel,
|
||||
}
|
||||
|
||||
func Init() {
|
||||
var syncWriters []zapcore.WriteSyncer
|
||||
level := getLoggerLevel(viper.GetString(`settings.log.level`))
|
||||
fileConfig := &lumberjack.Logger{
|
||||
Filename: viper.GetString(`settings.log.path`), // 日志文件名
|
||||
MaxSize: viper.GetInt(`settings.log.maxsize`), // 日志文件大小
|
||||
MaxAge: viper.GetInt(`settings.log.maxAge`), // 最长保存天数
|
||||
MaxBackups: viper.GetInt(`settings.log.maxBackups`), // 最多备份几个
|
||||
LocalTime: viper.GetBool(`settings.log.localtime`), // 日志时间戳
|
||||
Compress: viper.GetBool(`settings.log.compress`), // 是否压缩文件,使用gzip
|
||||
}
|
||||
encoder := zap.NewProductionEncoderConfig()
|
||||
encoder.EncodeTime = func(t time.Time, enc zapcore.PrimitiveArrayEncoder) {
|
||||
enc.AppendString(t.Format("2006-01-02 15:04:05.000000"))
|
||||
}
|
||||
if viper.GetBool("settings.log.consoleStdout") {
|
||||
syncWriters = append(syncWriters, zapcore.AddSync(os.Stdout))
|
||||
}
|
||||
if viper.GetBool("settings.log.fileStdout") {
|
||||
syncWriters = append(syncWriters, zapcore.AddSync(fileConfig))
|
||||
}
|
||||
core := zapcore.NewCore(
|
||||
zapcore.NewJSONEncoder(encoder),
|
||||
zapcore.NewMultiWriteSyncer(syncWriters...),
|
||||
zap.NewAtomicLevelAt(level))
|
||||
logger := zap.New(core, zap.AddCaller(), zap.AddCallerSkip(1))
|
||||
log = logger.Sugar()
|
||||
}
|
||||
|
||||
func getLoggerLevel(lvl string) zapcore.Level {
|
||||
if level, ok := levelMap[lvl]; ok {
|
||||
return level
|
||||
}
|
||||
return zapcore.InfoLevel
|
||||
}
|
||||
|
||||
func Debug(args ...interface{}) {
|
||||
log.Debug(args...)
|
||||
}
|
||||
|
||||
func Debugf(format string, args ...interface{}) {
|
||||
log.Debugf(format, args...)
|
||||
}
|
||||
|
||||
func Info(args ...interface{}) {
|
||||
log.Info(args...)
|
||||
}
|
||||
|
||||
func Infof(format string, args ...interface{}) {
|
||||
log.Infof(format, args...)
|
||||
}
|
||||
|
||||
func Warn(args ...interface{}) {
|
||||
log.Warn(args...)
|
||||
}
|
||||
|
||||
func Warnf(format string, args ...interface{}) {
|
||||
log.Warnf(format, args...)
|
||||
}
|
||||
|
||||
func Error(args ...interface{}) {
|
||||
log.Error(args...)
|
||||
}
|
||||
|
||||
func Errorf(format string, args ...interface{}) {
|
||||
log.Errorf(format, args...)
|
||||
}
|
||||
|
||||
func DPanic(args ...interface{}) {
|
||||
log.DPanic(args...)
|
||||
}
|
||||
|
||||
func DPanicf(format string, args ...interface{}) {
|
||||
log.DPanicf(format, args...)
|
||||
}
|
||||
|
||||
func Panic(args ...interface{}) {
|
||||
log.Panic(args...)
|
||||
}
|
||||
|
||||
func Panicf(format string, args ...interface{}) {
|
||||
log.Panicf(format, args...)
|
||||
}
|
||||
|
||||
func Fatal(args ...interface{}) {
|
||||
log.Fatal(args...)
|
||||
}
|
||||
|
||||
func Fatalf(format string, args ...interface{}) {
|
||||
log.Fatalf(format, args...)
|
||||
}
|
||||
|
@ -6,11 +6,11 @@ package email
|
||||
*/
|
||||
|
||||
import (
|
||||
"ferry/pkg/logger"
|
||||
"strconv"
|
||||
|
||||
"github.com/spf13/viper"
|
||||
|
||||
log "github.com/sirupsen/logrus"
|
||||
"gopkg.in/gomail.v2"
|
||||
)
|
||||
|
||||
@ -41,8 +41,8 @@ func server(mailTo []string, subject, body string, args ...string) error {
|
||||
func SendMail(mailTo []string, subject, body string) {
|
||||
err := server(mailTo, subject, body)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
logger.Info(err)
|
||||
return
|
||||
}
|
||||
log.Println("send successfully")
|
||||
logger.Info("send successfully")
|
||||
}
|
||||
|
@ -3,12 +3,11 @@ package notify
|
||||
import (
|
||||
"bytes"
|
||||
"ferry/models/system"
|
||||
"ferry/pkg/logger"
|
||||
"ferry/pkg/notify/email"
|
||||
"text/template"
|
||||
|
||||
"github.com/spf13/viper"
|
||||
|
||||
log "github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
/*
|
||||
@ -78,7 +77,7 @@ func (b *BodyData) SendNotify() (err error) {
|
||||
}
|
||||
err = b.ParsingTemplate()
|
||||
if err != nil {
|
||||
log.Errorf("模版内容解析失败,%v", err.Error())
|
||||
logger.Errorf("模版内容解析失败,%v", err.Error())
|
||||
return
|
||||
}
|
||||
go email.SendMail(emailList, b.Subject, b.Content)
|
||||
|
@ -5,11 +5,10 @@ package pagination
|
||||
*/
|
||||
|
||||
import (
|
||||
"ferry/pkg/logger"
|
||||
"fmt"
|
||||
"math"
|
||||
|
||||
"github.com/RichardKnop/machinery/v1/log"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/jinzhu/gorm"
|
||||
)
|
||||
@ -45,7 +44,7 @@ func Paging(p *Param, result interface{}, args ...interface{}) (*Paginator, erro
|
||||
)
|
||||
|
||||
if err := p.C.Bind(¶m); err != nil {
|
||||
log.ERROR.Printf("参数绑定失败,错误:%v", err)
|
||||
logger.Errorf("参数绑定失败,错误:%v", err)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@ -97,7 +96,7 @@ func Paging(p *Param, result interface{}, args ...interface{}) (*Paginator, erro
|
||||
|
||||
err := db.Limit(param.PerPage).Offset(offset).Scan(result).Error
|
||||
if err != nil {
|
||||
log.ERROR.Printf("数据查询失败,错误:%v", err)
|
||||
logger.Errorf("数据查询失败,错误:%v", err)
|
||||
return nil, err
|
||||
}
|
||||
<-done
|
||||
|
@ -1,7 +1,7 @@
|
||||
package pagination
|
||||
|
||||
import (
|
||||
"github.com/RichardKnop/machinery/v1/log"
|
||||
"ferry/pkg/logger"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
@ -15,7 +15,7 @@ func RequestParams(c *gin.Context) map[string]interface{} {
|
||||
|
||||
if c.Request.Form == nil {
|
||||
if err := c.Request.ParseMultipartForm(32 << 20); err != nil {
|
||||
log.ERROR.Println(err)
|
||||
logger.Error(err)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -5,9 +5,8 @@ package task
|
||||
*/
|
||||
|
||||
import (
|
||||
"ferry/pkg/logger"
|
||||
"ferry/pkg/task/worker"
|
||||
|
||||
"github.com/RichardKnop/machinery/v1/log"
|
||||
)
|
||||
|
||||
func Start() {
|
||||
@ -15,6 +14,6 @@ func Start() {
|
||||
taskWorker := worker.NewAsyncTaskWorker(0)
|
||||
err := taskWorker.Launch()
|
||||
if err != nil {
|
||||
log.ERROR.Println("启动machinery失败,%v", err.Error())
|
||||
logger.Errorf("启动machinery失败,%v", err.Error())
|
||||
}
|
||||
}
|
||||
|
@ -2,10 +2,10 @@ package worker
|
||||
|
||||
import (
|
||||
"context"
|
||||
"ferry/pkg/logger"
|
||||
"os/exec"
|
||||
"syscall"
|
||||
|
||||
"github.com/RichardKnop/machinery/v1/log"
|
||||
"github.com/RichardKnop/machinery/v1/tasks"
|
||||
)
|
||||
|
||||
@ -15,30 +15,30 @@ func executeTaskBase(scriptPath string) {
|
||||
command := exec.Command("/bin/bash", "-c", scriptPath) //初始化Cmd
|
||||
err := command.Start() //运行脚本
|
||||
if nil != err {
|
||||
log.ERROR.Printf("task exec failed,%v", err.Error())
|
||||
logger.Errorf("task exec failed,%v", err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
log.INFO.Println("Process PID:", command.Process.Pid)
|
||||
logger.Info("Process PID:", command.Process.Pid)
|
||||
|
||||
err = command.Wait() //等待执行完成
|
||||
if nil != err {
|
||||
log.ERROR.Printf("task exec failed,%v", err.Error())
|
||||
logger.Errorf("task exec failed,%v", err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
log.INFO.Println("ProcessState PID:", command.ProcessState.Pid())
|
||||
log.INFO.Println("Exit Code", command.ProcessState.Sys().(syscall.WaitStatus).ExitStatus())
|
||||
logger.Info("ProcessState PID:", command.ProcessState.Pid())
|
||||
logger.Info("Exit Code", command.ProcessState.Sys().(syscall.WaitStatus).ExitStatus())
|
||||
}
|
||||
|
||||
// ExecCommand 异步任务
|
||||
func ExecCommand(classify string, scriptPath string) error {
|
||||
if classify == "shell" {
|
||||
log.INFO.Println("start exec shell...", scriptPath)
|
||||
logger.Info("start exec shell...", scriptPath)
|
||||
executeTaskBase(scriptPath)
|
||||
return nil
|
||||
} else if classify == "python" {
|
||||
log.INFO.Println("start exec python...", scriptPath)
|
||||
logger.Info("start exec python...", scriptPath)
|
||||
executeTaskBase(scriptPath)
|
||||
return nil
|
||||
}
|
||||
@ -61,7 +61,7 @@ func SendTask(ctx context.Context, classify string, scriptPath string) {
|
||||
task.RetryCount = 5
|
||||
_, err := AsyncTaskCenter.SendTaskWithContext(ctx, task)
|
||||
if err != nil {
|
||||
log.ERROR.Println(err.Error())
|
||||
logger.Error(err.Error())
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,9 +1,10 @@
|
||||
package worker
|
||||
|
||||
import (
|
||||
"ferry/pkg/logger"
|
||||
|
||||
"github.com/RichardKnop/machinery/v1"
|
||||
taskConfig "github.com/RichardKnop/machinery/v1/config"
|
||||
"github.com/RichardKnop/machinery/v1/log"
|
||||
"github.com/RichardKnop/machinery/v1/tasks"
|
||||
)
|
||||
|
||||
@ -35,13 +36,13 @@ func NewAsyncTaskWorker(concurrency int) *machinery.Worker {
|
||||
consumerTag := "TaskWorker"
|
||||
worker := AsyncTaskCenter.NewWorker(consumerTag, concurrency)
|
||||
errorHandler := func(err error) {
|
||||
log.ERROR.Println("执行失败: ", err)
|
||||
logger.Error("执行失败: ", err)
|
||||
}
|
||||
preTaskHandler := func(signature *tasks.Signature) {
|
||||
log.INFO.Println("开始执行: ", signature.Name)
|
||||
logger.Info("开始执行: ", signature.Name)
|
||||
}
|
||||
postTaskHandler := func(signature *tasks.Signature) {
|
||||
log.INFO.Println("执行结束: ", signature.Name)
|
||||
logger.Info("执行结束: ", signature.Name)
|
||||
}
|
||||
worker.SetPostTaskHandler(postTaskHandler)
|
||||
worker.SetErrorHandler(errorHandler)
|
||||
|
@ -1,10 +1,10 @@
|
||||
package app
|
||||
|
||||
import (
|
||||
"ferry/pkg/logger"
|
||||
"net/http"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
log "github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
// 失败数据处理
|
||||
@ -14,7 +14,7 @@ func Error(c *gin.Context, code int, err error, msg string) {
|
||||
if msg != "" {
|
||||
res.Msg = msg
|
||||
}
|
||||
log.Error(res.Msg)
|
||||
logger.Error(res.Msg)
|
||||
c.JSON(http.StatusOK, res.ReturnError(code))
|
||||
}
|
||||
|
||||
|
@ -1,70 +1,68 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"ferry/pkg/logger"
|
||||
"fmt"
|
||||
log "github.com/sirupsen/logrus"
|
||||
"github.com/spf13/viper"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
"github.com/spf13/viper"
|
||||
)
|
||||
|
||||
var cfgDatabase *viper.Viper
|
||||
var cfgApplication *viper.Viper
|
||||
var cfgJwt *viper.Viper
|
||||
var cfgLog *viper.Viper
|
||||
var cfgSsl *viper.Viper
|
||||
|
||||
|
||||
//载入配置文件
|
||||
func ConfigSetup(path string) {
|
||||
viper.SetConfigFile(path)
|
||||
content, err := ioutil.ReadFile(path)
|
||||
if err != nil {
|
||||
log.Fatal(fmt.Sprintf("Read config file fail: %s", err.Error()))
|
||||
logger.Fatal(fmt.Sprintf("Read config file fail: %s", err.Error()))
|
||||
}
|
||||
|
||||
|
||||
//Replace environment variables
|
||||
err = viper.ReadConfig(strings.NewReader(os.ExpandEnv(string(content))))
|
||||
if err != nil {
|
||||
log.Fatal(fmt.Sprintf("Parse config file fail: %s", err.Error()))
|
||||
logger.Fatal(fmt.Sprintf("Parse config file fail: %s", err.Error()))
|
||||
}
|
||||
|
||||
// 数据库初始化
|
||||
cfgDatabase = viper.Sub("settings.database")
|
||||
if cfgDatabase == nil {
|
||||
panic("config not found settings.database")
|
||||
}
|
||||
DatabaseConfig = InitDatabase(cfgDatabase)
|
||||
|
||||
// 启动参数
|
||||
cfgApplication = viper.Sub("settings.application")
|
||||
if cfgApplication == nil {
|
||||
panic("config not found settings.application")
|
||||
}
|
||||
ApplicationConfig = InitApplication(cfgApplication)
|
||||
|
||||
// Jwt初始化
|
||||
cfgJwt = viper.Sub("settings.jwt")
|
||||
if cfgJwt == nil {
|
||||
panic("config not found settings.jwt")
|
||||
}
|
||||
JwtConfig = InitJwt(cfgJwt)
|
||||
|
||||
cfgLog = viper.Sub("settings.log")
|
||||
if cfgLog == nil {
|
||||
panic("config not found settings.log")
|
||||
}
|
||||
LogConfig = InitLog(cfgLog)
|
||||
|
||||
// ssl 配置
|
||||
cfgSsl = viper.Sub("settings.ssl")
|
||||
if cfgSsl == nil {
|
||||
panic("config not found settings.ssl")
|
||||
}
|
||||
SslConfig = InitSsl(cfgSsl)
|
||||
}
|
||||
|
||||
// 日志配置
|
||||
logger.Init()
|
||||
}
|
||||
|
||||
func SetConfig(configPath string, key string, value interface{}) {
|
||||
viper.AddConfigPath(configPath)
|
||||
viper.Set(key, value)
|
||||
viper.WriteConfig()
|
||||
_ = viper.WriteConfig()
|
||||
}
|
||||
|
@ -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)
|
@ -1,62 +0,0 @@
|
||||
package tools
|
||||
|
||||
import (
|
||||
"errors"
|
||||
config2 "ferry/tools/config"
|
||||
"os"
|
||||
"time"
|
||||
|
||||
log "github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
func InitLogger() {
|
||||
log.SetFormatter(&log.TextFormatter{FieldMap: log.FieldMap{
|
||||
log.FieldKeyTime: "@timestamp",
|
||||
log.FieldKeyLevel: "@level",
|
||||
log.FieldKeyMsg: "@message"}})
|
||||
|
||||
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")
|
||||
}
|
||||
|
||||
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)
|
||||
}
|
||||
|
||||
log.SetReportCaller(true)
|
||||
}
|
||||
|
||||
type logFileWriter struct {
|
||||
file *os.File
|
||||
size int64
|
||||
}
|
||||
|
||||
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,10 +2,10 @@ package tools
|
||||
|
||||
import (
|
||||
jwt "ferry/pkg/jwtauth"
|
||||
"ferry/pkg/logger"
|
||||
"fmt"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
log "github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
func ExtractClaims(c *gin.Context) jwt.MapClaims {
|
||||
@ -22,7 +22,7 @@ func GetUserId(c *gin.Context) int {
|
||||
if data["identity"] != nil {
|
||||
return int((data["identity"]).(float64))
|
||||
}
|
||||
log.Println("********** 路径:" + c.Request.URL.Path + " 请求方法:" + c.Request.Method + " 说明:缺少identity")
|
||||
logger.Info("********** 路径:" + c.Request.URL.Path + " 请求方法:" + c.Request.Method + " 说明:缺少identity")
|
||||
return 0
|
||||
}
|
||||
|
||||
@ -31,7 +31,7 @@ func GetUserIdStr(c *gin.Context) string {
|
||||
if data["identity"] != nil {
|
||||
return Int64ToString(int64((data["identity"]).(float64)))
|
||||
}
|
||||
log.Println("********** 路径:" + c.Request.URL.Path + " 请求方法:" + c.Request.Method + " 缺少identity")
|
||||
logger.Info("********** 路径:" + c.Request.URL.Path + " 请求方法:" + c.Request.Method + " 缺少identity")
|
||||
return ""
|
||||
}
|
||||
|
||||
|
@ -1,9 +1,10 @@
|
||||
package tools
|
||||
|
||||
import (
|
||||
log "github.com/sirupsen/logrus"
|
||||
"golang.org/x/crypto/bcrypt"
|
||||
"ferry/pkg/logger"
|
||||
"strconv"
|
||||
|
||||
"golang.org/x/crypto/bcrypt"
|
||||
)
|
||||
|
||||
func StrToInt(err error, index string) int {
|
||||
@ -17,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.Info(err.Error())
|
||||
return false, err
|
||||
}
|
||||
return true, nil
|
||||
@ -49,7 +50,7 @@ func HasError(err error, msg string, code ...int) {
|
||||
if msg == "" {
|
||||
msg = err.Error()
|
||||
}
|
||||
log.Println(err)
|
||||
logger.Info(err)
|
||||
panic("CustomError#" + strconv.Itoa(statusCode) + "#" + msg)
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user