19 Star 139 Fork 63

King / ATX

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
httplog.go 1.12 KB
一键复制 编辑 原始数据 按行查看 历史
King 提交于 2019-02-14 17:04 . 安卓设备集群管理平台
package main
import (
"fmt"
"log"
"os"
"regexp"
"runtime"
"strings"
accesslog "github.com/mash/go-accesslog"
isatty "github.com/mattn/go-isatty"
)
var logger *log.Logger
var isaTTY = isatty.IsTerminal(os.Stdout.Fd())
func init() {
if runtime.GOOS == "windows" {
logger = log.New(os.Stdout, "", log.Ltime)
} else {
logger = log.New(os.Stdout, "\033[0;32m[", log.Ltime)
}
}
type HTTPLogger struct {
}
// Example
// [I 170227 14:47:16 web:1946] 200 GET /api/v1/devices (10.240.185.65) 28.00ms
func (l HTTPLogger) Log(record accesslog.LogRecord) {
// update info too many just ignore
if record.Method == "POST" && regexp.MustCompile(`/devices/[^/]+/info`).MatchString(record.Uri) {
return
}
if strings.HasSuffix(record.Uri, "/heartbeat") {
return
}
if isaTTY {
logger.Println(fmt.Sprintf("\b] \033[0;m%d %s %s (%s) %.2fms", record.Status, record.Method, record.Uri, record.Ip,
float64(record.ElapsedTime.Nanoseconds()/1000)/1000.0))
} else {
logger.Println(fmt.Sprintf("%d %s %s (%s) %.2fms", record.Status, record.Method, record.Uri, record.Ip,
float64(record.ElapsedTime.Nanoseconds()/1000)/1000.0))
}
}
Go
1
https://gitee.com/hagyao520/ATX.git
git@gitee.com:hagyao520/ATX.git
hagyao520
ATX
ATX
master

搜索帮助