代码拉取完成,页面将自动刷新
同步操作将从 King/ATX 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
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))
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。