Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
H
hilo-common
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
hujiebin
hilo-common
Commits
7cb4fdb3
Commit
7cb4fdb3
authored
Feb 08, 2023
by
hujiebin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:先上log的
parent
5804709c
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
209 additions
and
0 deletions
+209
-0
go.mod
go.mod
+6
-0
go.sum
go.sum
+25
-0
log.go
mylogrus/log.go
+93
-0
log_unix.go
mylogrus/log_unix.go
+54
-0
log_windows.go
mylogrus/log_windows.go
+31
-0
No files found.
go.mod
View file @
7cb4fdb3
...
...
@@ -7,9 +7,15 @@ require (
github.com/go-sql-driver/mysql v1.6.0 // indirect
github.com/jinzhu/inflection v1.0.0 // indirect
github.com/jinzhu/now v1.1.5 // indirect
github.com/lestrrat-go/file-rotatelogs v2.4.0+incompatible // indirect
github.com/lestrrat-go/strftime v1.0.6 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/rifflock/lfshook v0.0.0-20180920164130-b9218ef580f5 // indirect
github.com/satori/go.uuid v1.2.0 // indirect
github.com/sirupsen/logrus v1.7.0 // indirect
github.com/spf13/cast v1.5.0 // indirect
github.com/tealeg/xlsx v1.0.5 // indirect
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8 // indirect
gorm.io/driver/mysql v1.4.3 // indirect
gorm.io/gorm v1.23.8 // indirect
)
go.sum
View file @
7cb4fdb3
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM=
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE=
...
...
@@ -11,13 +13,36 @@ github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/lestrrat-go/envload v0.0.0-20180220234015-a3eb8ddeffcc/go.mod h1:kopuH9ugFRkIXf3YoqHKyrJ9YfUFsckUU9S7B+XP+is=
github.com/lestrrat-go/file-rotatelogs v2.4.0+incompatible h1:Y6sqxHMyB1D2YSzWkLibYKgg+SwmyFU9dF2hn6MdTj4=
github.com/lestrrat-go/file-rotatelogs v2.4.0+incompatible/go.mod h1:ZQnN8lSECaebrkQytbHj4xNgtg8CR7RYXnPok8e0EHA=
github.com/lestrrat-go/strftime v1.0.6 h1:CFGsDEt1pOpFNU+TJB0nhz9jl+K0hZSLE205AhTIGQQ=
github.com/lestrrat-go/strftime v1.0.6/go.mod h1:f7jQKgV5nnJpYgdEasS+/y7EsTb8ykN2z68n3TtcTaw=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/rifflock/lfshook v0.0.0-20180920164130-b9218ef580f5 h1:mZHayPoR0lNmnHyvtYjDeq0zlVHn9K/ZXoy17ylucdo=
github.com/rifflock/lfshook v0.0.0-20180920164130-b9218ef580f5/go.mod h1:GEXHk5HgEKCvEIIrSpFI3ozzG5xOKA2DVlEX/gGnewM=
github.com/satori/go.uuid v1.2.0 h1:0uYX9dsZ2yD7q2RtLRtPSdGDWzjeM3TbMJP9utgA0ww=
github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0=
github.com/sirupsen/logrus v1.7.0 h1:ShrD1U9pZB12TX0cVy0DtePoCH97K8EtX+mg7ZARUtM=
github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0=
github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w=
github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/tealeg/xlsx v1.0.5 h1:+f8oFmvY8Gw1iUXzPk+kz+4GpbDZPK1FhPiQRd+ypgE=
github.com/tealeg/xlsx v1.0.5/go.mod h1:btRS8dz54TDnvKNosuAqxrM1QgN1udgk9O34bDCnORM=
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8 h1:0A+M6Uqn+Eje4kHMK80dtF3JCXC4ykBgQG4Fe06QRhQ=
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gorm.io/driver/mysql v1.4.3 h1:/JhWJhO2v17d8hjApTltKNADm7K7YI2ogkR7avJUL3k=
gorm.io/driver/mysql v1.4.3/go.mod h1:sSIebwZAVPiT+27jK9HIwvsqOGKx3YMPmrA3mBJR10c=
gorm.io/gorm v1.23.8 h1:h8sGJ+biDgBA1AD1Ha9gFCx7h8npU7AsLdlkX0n2TpE=
...
...
mylogrus/log.go
0 → 100644
View file @
7cb4fdb3
package
mylogrus
import
(
rotatelogs
"github.com/lestrrat-go/file-rotatelogs"
"github.com/rifflock/lfshook"
"github.com/sirupsen/logrus"
"io"
"os"
"path/filepath"
"time"
)
const
logDir
=
"/var/log/hilo/"
var
filenamePrefix
string
var
MyLog
=
logrus
.
New
()
func
Info
(
v
interface
{})
{
MyLog
.
Info
(
""
)
}
func
init
()
{
filenamePrefix
=
logDir
+
filepath
.
Base
(
os
.
Args
[
0
])
+
"."
// stderr日志重定向
MyLog
.
SetOutput
(
os
.
Stdout
)
RewriteStderrFile
()
MyLog
.
SetFormatter
(
&
logrus
.
TextFormatter
{
ForceQuote
:
false
,
DisableQuote
:
true
,
TimestampFormat
:
"2006-01-02 15:04:05.000"
,
FullTimestamp
:
true
,
})
hook
:=
lfshook
.
NewHook
(
lfshook
.
WriterMap
{
logrus
.
DebugLevel
:
getLevelWrite
(
logrus
.
DebugLevel
),
logrus
.
InfoLevel
:
getLevelWrite
(
logrus
.
InfoLevel
),
logrus
.
WarnLevel
:
getLevelWrite
(
logrus
.
WarnLevel
),
logrus
.
ErrorLevel
:
getLevelWrite
(
logrus
.
ErrorLevel
),
logrus
.
FatalLevel
:
getLevelWrite
(
logrus
.
FatalLevel
),
logrus
.
PanicLevel
:
getLevelWrite
(
logrus
.
PanicLevel
),
},
&
logrus
.
TextFormatter
{
ForceQuote
:
false
,
DisableQuote
:
true
,
TimestampFormat
:
time
.
RFC3339Nano
})
MyLog
.
AddHook
(
hook
)
MyLog
.
SetLevel
(
logrus
.
InfoLevel
)
MyLog
.
SetReportCaller
(
true
)
}
func
GetInfoLog
()
io
.
Writer
{
return
getLevelWrite
(
logrus
.
InfoLevel
)
}
func
getLevelWrite
(
level
logrus
.
Level
)
io
.
Writer
{
var
name
string
switch
level
{
case
logrus
.
DebugLevel
:
name
=
"debug.log"
case
logrus
.
InfoLevel
:
name
=
"info.log"
case
logrus
.
WarnLevel
:
name
=
"warn.log"
case
logrus
.
ErrorLevel
:
name
=
"error.log"
case
logrus
.
FatalLevel
:
name
=
"fatal.log"
case
logrus
.
PanicLevel
:
name
=
"panic.log"
}
name
=
filenamePrefix
+
name
writer
,
err
:=
rotatelogs
.
New
(
name
+
".%Y%m%d%H"
,
rotatelogs
.
WithLinkName
(
name
),
// 生成软链,指向最新日志文件
rotatelogs
.
WithMaxAge
(
7
*
24
*
time
.
Hour
),
// 文件最大保存时间
rotatelogs
.
WithRotationTime
(
time
.
Hour
),
// 日志切割时间间隔
)
if
err
!=
nil
{
MyLog
.
Fatal
(
"Failed to create log file:"
,
err
.
Error
())
}
return
writer
}
func
GetSqlLog
()
io
.
Writer
{
var
name
string
=
"sql.log"
name
=
filenamePrefix
+
name
writer
,
err
:=
rotatelogs
.
New
(
name
+
".%Y%m%d%H"
,
rotatelogs
.
WithLinkName
(
name
),
// 生成软链,指向最新日志文件
rotatelogs
.
WithMaxAge
(
7
*
24
*
time
.
Hour
),
// 文件最大保存时间
rotatelogs
.
WithRotationTime
(
time
.
Hour
),
// 日志切割时间间隔
)
if
err
!=
nil
{
MyLog
.
Fatal
(
"Failed to create log file:"
,
err
.
Error
())
}
return
writer
}
mylogrus/log_unix.go
0 → 100644
View file @
7cb4fdb3
//go:build !windows
// +build !windows
package
mylogrus
import
(
"fmt"
"os"
"path/filepath"
"runtime"
"syscall"
"time"
)
var
stdErrFileHandler
*
os
.
File
func
RewriteStderrFile
()
{
filename
:=
logDir
+
filepath
.
Base
(
os
.
Args
[
0
])
+
".stderr.log"
//if runtime.GOOS == "darwin" { // mac本地调试
// filename = "./log/hilo/" + filepath.Base(os.Args[0]) + ".stderr.log"
//}
if
exits
,
_
:=
pathExists
(
filename
);
exits
{
os
.
Rename
(
filename
,
filename
+
"_"
+
time
.
Now
()
.
Format
(
"20060102150405"
))
}
file
,
err
:=
os
.
OpenFile
(
filename
,
os
.
O_RDWR
|
os
.
O_CREATE
|
os
.
O_APPEND
,
0666
)
if
err
!=
nil
{
fmt
.
Println
(
err
)
return
}
stdErrFileHandler
=
file
//把文件句柄保存到全局变量,避免被GC回收
if
err
=
syscall
.
Dup2
(
int
(
file
.
Fd
()),
int
(
os
.
Stderr
.
Fd
()));
err
!=
nil
{
fmt
.
Println
(
err
)
return
}
// 内存回收前关闭文件描述符
runtime
.
SetFinalizer
(
stdErrFileHandler
,
func
(
fd
*
os
.
File
)
{
fd
.
Close
()
})
return
}
func
pathExists
(
path
string
)
(
bool
,
error
)
{
_
,
err
:=
os
.
Stat
(
path
)
if
err
==
nil
{
return
true
,
nil
}
if
os
.
IsNotExist
(
err
)
{
return
false
,
nil
}
return
false
,
err
}
mylogrus/log_windows.go
0 → 100644
View file @
7cb4fdb3
//go:build windows
// +build windows
package
mylogrus
import
(
"os"
"path/filepath"
"time"
)
func
RewriteStderrFile
()
{
filename
:=
logDir
+
filepath
.
Base
(
os
.
Args
[
0
])
+
".stderr.log"
if
exits
,
_
:=
pathExists
(
filename
);
exits
{
os
.
Rename
(
filename
,
filename
+
"_"
+
time
.
Now
()
.
Format
(
"20060102150405"
))
}
file
,
err
:=
os
.
OpenFile
(
filename
,
os
.
O_RDWR
|
os
.
O_CREATE
|
os
.
O_APPEND
,
0666
)
MyLog
.
Errorf
(
"stderr log in:%v,err:%v"
,
file
,
err
)
}
func
pathExists
(
path
string
)
(
bool
,
error
)
{
_
,
err
:=
os
.
Stat
(
path
)
if
err
==
nil
{
return
true
,
nil
}
if
os
.
IsNotExist
(
err
)
{
return
false
,
nil
}
return
false
,
err
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment