Notes002:gin 简洁快速日志查看工具

1. 解决疼点
- 远程服务器日志查看太繁琐
- linux命令太繁琐
- 简单几行代码就可以快速查看日志
2. gin.HandlerFunc 代码
func apiListLog(logDir string) gin.HandlerFunc {
//logDir 保存日志的目录
//建议在开发/beta环境中使用
return func(c *gin.Context) {
if p := c.Query("f"); p != "" {
//日志文件的绝对路径
c.File(p) //网页展示日志文件内容
return
}
if logDir == "" {
c.String(200, "%s", "logDir is empty")
return
}
//render 日志文件中的全部内容
buff := new(bytes.Buffer)
err := filepath.Walk(logDir, func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
if !info.IsDir() {
fmt.Fprintf(buff, `<li><a href="log?f=%s" title="%dKB">%s</a></li>`, path, info.Size()>>10,path)
}
return nil
})
if err != nil {
c.String(200, "%v", err)
} else {
c.Data(http.StatusOK, "text/html; charset=utf-8", buff.Bytes())
}
}
}
3. 使用方法
- 把上面 gin.HandlerFunc 注册到gin路由
- 注意:请在生产环境不要开启, 或者在生产环境设置认证密码…
- 在网页中访问 这个handler 查看日志