Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
祺技世界
gin-vue-admin
提交
b4346600
G
gin-vue-admin
项目概览
祺技世界
/
gin-vue-admin
与 Fork 源项目一致
Fork自
FLIPPED-AURORA / gin-vue-admin
通知
6
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
gin-vue-admin
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
b4346600
编写于
9月 03, 2020
作者:
Sliver_Horn
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
zap日志的配置优化及初始化优化
上级
acc0fc8d
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
81 addition
and
38 deletion
+81
-38
server/config.yaml
server/config.yaml
+9
-5
server/config/config.go
server/config/config.go
+7
-5
server/core/zap.go
server/core/zap.go
+65
-28
未找到文件。
server/config.yaml
浏览文件 @
b4346600
...
...
@@ -68,8 +68,12 @@ log:
# zap logger configuration
zap
:
level
:
"
debug"
file
:
"
DEBUG"
max_size
:
200
max_age
:
30
max_backups
:
7
\ No newline at end of file
# 可使用 "debug", "info", "warn", "error", "dpanic", "panic", "fatal",
level
:
'
debug'
# console: 控制台, json: json格式输出
format
:
'
console'
prefix
:
'
[GIN-VUE-ADMIN]'
director
:
'
logs'
link_name
:
'
ZapLatestLog'
show_line
:
true
log_in_console
:
true
\ No newline at end of file
server/config/config.go
浏览文件 @
b4346600
...
...
@@ -81,9 +81,11 @@ type Sqlite struct {
}
type
Zap
struct
{
Level
string
`json:"level"`
File
string
`json:"file"`
MaxSize
int
`json:"maxsize"`
MaxAge
int
`json:"max_age"`
MaxBackups
int
`json:"max_backups"`
Level
string
`mapstructure:"level" json:"level" yaml:"level"`
Format
string
`mapstructure:"format" json:"format" yaml:"format"`
Prefix
string
`mapstructure:"prefix" json:"prefix" yaml:"prefix"`
Director
string
`mapstructure:"director" json:"director" yaml:"director"`
LinkName
string
`mapstructure:"link_name" json:"linkName" yaml:"link_name"`
ShowLine
bool
`mapstructure:"show_line" json:"show_line" yaml:"show_line"`
LogInConsole
bool
`mapstructure:"log_in_console" json:"logInConsole" yaml:"log_in_console"`
}
server/core/zap.go
浏览文件 @
b4346600
...
...
@@ -11,57 +11,94 @@ import (
"time"
)
const
(
zapLogDir
=
"log"
zapLogSoftLink
=
"latest_log"
zapModule
=
"gin-vue-admin"
var
(
err
error
level
zapcore
.
Level
writer
zapcore
.
WriteSyncer
)
func
init
()
{
if
global
.
GVA_CONFIG
.
Zap
.
File
==
""
{
global
.
GVA_CONFIG
.
Zap
.
File
=
"DEBUG"
if
ok
,
_
:=
utils
.
PathExists
(
global
.
GVA_CONFIG
.
Zap
.
Director
);
!
ok
{
// 判断是否有logs文件夹
fmt
.
Println
(
"create logs directory"
)
// directory not exist
_
=
os
.
Mkdir
(
global
.
GVA_CONFIG
.
Zap
.
Director
,
os
.
ModePerm
)
}
if
ok
,
_
:=
utils
.
PathExists
(
zapLogDir
);
!
ok
{
// directory not exist
fmt
.
Println
(
"create log directory"
)
_
=
os
.
Mkdir
(
zapLogDir
,
os
.
ModePerm
)
switch
global
.
GVA_CONFIG
.
Zap
.
Level
{
// 初始化配置文件的Level
case
"debug"
:
level
=
zap
.
DebugLevel
case
"info"
:
level
=
zap
.
InfoLevel
case
"warn"
:
level
=
zap
.
WarnLevel
case
"error"
:
level
=
zap
.
ErrorLevel
default
:
level
=
zap
.
InfoLevel
}
var
l
=
new
(
zapcore
.
Level
)
write
Syncer
,
err
:=
getWriteSyncer
()
write
r
,
err
=
getWriteSyncer
()
// 使用file-rotatelogs进行日志分割
if
err
!=
nil
{
fmt
.
Printf
(
"Get Write Syncer Failed err:%v"
,
err
.
Error
())
return
}
encoder
:=
getEncoderConfig
()
if
err
:=
l
.
UnmarshalText
([]
byte
(
global
.
GVA_CONFIG
.
Zap
.
Level
));
err
!=
nil
{
fmt
.
Printf
(
"Unmarshal Level Failed err:%v"
,
err
.
Error
())
if
level
==
zap
.
DebugLevel
||
level
==
zap
.
ErrorLevel
{
global
.
GVA_ZAP
=
zap
.
New
(
getEncoderCore
(),
zap
.
AddStacktrace
(
level
))
if
global
.
GVA_CONFIG
.
Zap
.
ShowLine
{
global
.
GVA_ZAP
.
WithOptions
(
zap
.
AddCaller
())
}
return
}
core
:=
zapcore
.
NewCore
(
encoder
,
writeSyncer
,
l
)
global
.
GVA_ZAP
=
zap
.
New
(
core
,
zap
.
AddCaller
())
global
.
GVA_ZAP
=
zap
.
New
(
getEncoderCore
())
if
global
.
GVA_CONFIG
.
Zap
.
ShowLine
{
global
.
GVA_ZAP
.
WithOptions
(
zap
.
AddCaller
())
}
}
// getWriteSyncer zap logger中加入file-rotatelogs
func
getWriteSyncer
()
(
zapcore
.
WriteSyncer
,
error
)
{
fileWriter
,
err
:=
zaprotatelogs
.
New
(
zapLogDir
+
string
(
os
.
PathSeparator
)
+
"%Y-%m-%d-%H-%M.log"
,
zaprotatelogs
.
WithLinkName
(
zapLogSoftLink
),
global
.
GVA_CONFIG
.
Zap
.
Director
+
string
(
os
.
PathSeparator
)
+
"%Y-%m-%d-%H-%M.log"
,
zaprotatelogs
.
WithLinkName
(
global
.
GVA_CONFIG
.
Zap
.
LinkName
),
zaprotatelogs
.
WithMaxAge
(
7
*
24
*
time
.
Hour
),
zaprotatelogs
.
WithRotationTime
(
24
*
time
.
Hour
),
)
if
global
.
GVA_CONFIG
.
Zap
.
LogInConsole
{
return
zapcore
.
NewMultiWriteSyncer
(
zapcore
.
AddSync
(
os
.
Stdout
),
zapcore
.
AddSync
(
fileWriter
)),
err
}
return
zapcore
.
AddSync
(
fileWriter
),
err
}
// getEncoderConfig 获取zapcore.Encoder
func
getEncoderConfig
()
zapcore
.
Encoder
{
encoderConfig
:=
zap
.
NewProductionEncoderConfig
()
encoderConfig
.
EncodeTime
=
zapcore
.
ISO8601TimeEncoder
encoderConfig
.
TimeKey
=
"time"
encoderConfig
.
EncodeLevel
=
zapcore
.
CapitalLevelEncoder
encoderConfig
.
EncodeDuration
=
zapcore
.
SecondsDurationEncoder
encoderConfig
.
EncodeCaller
=
zapcore
.
ShortCallerEncoder
return
zapcore
.
NewConsoleEncoder
(
encoderConfig
)
// getEncoderConfig 获取zapcore.EncoderConfig
func
getEncoderConfig
()
(
config
zapcore
.
EncoderConfig
)
{
config
=
zapcore
.
EncoderConfig
{
MessageKey
:
"message"
,
LevelKey
:
"level"
,
TimeKey
:
"time"
,
NameKey
:
"logger"
,
CallerKey
:
"caller"
,
StacktraceKey
:
"stacktrace"
,
LineEnding
:
zapcore
.
DefaultLineEnding
,
EncodeLevel
:
zapcore
.
CapitalColorLevelEncoder
,
EncodeTime
:
CustomTimeEncoder
,
EncodeDuration
:
zapcore
.
SecondsDurationEncoder
,
EncodeCaller
:
zapcore
.
FullCallerEncoder
,
}
return
config
}
// getEncoder 获取zapcore.Encoder
func
getEncoder
()
zapcore
.
Encoder
{
return
zapcore
.
NewConsoleEncoder
(
getEncoderConfig
())
}
// getEncoderCore 获取Encoder的zapcore.Core
func
getEncoderCore
()
(
core
zapcore
.
Core
)
{
return
zapcore
.
NewCore
(
getEncoder
(),
writer
,
level
)
}
// 自定义日志输出时间格式
func
CustomTimeEncoder
(
t
time
.
Time
,
enc
zapcore
.
PrimitiveArrayEncoder
)
{
enc
.
AppendString
(
t
.
Format
(
global
.
GVA_CONFIG
.
Zap
.
Prefix
+
"2006/01/02 - 15:04:05.000"
))
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录