我是Go的新手,并在mux中使用http://thenewstack.io/make-a-restful-json-api-go/创建一些REST API。虽然它主要工作正常,但我没有看到使用log.Println记录HTTP请求的Logger装饰器按预期进行控制台记录。
我错过了什么吗?此外,看起来在路由列表范围内调用Logger时,这是记录每个请求的正确方法吗?
答案 0 :(得分:0)
默认情况下,日志会流式传输到stderr
。如果您想查看服务器的输出(例如,名为" testAPI"),则需要将stderr
重定向到stdout
(您的终端):
// If already compiled
/path/to/testAPI 2>&1
// Without building / installing
go run testAPI.go 2>&1
如果您只是想让它登录到日志文件:
// If already compiled
/path/to/testAPI 2> /path/to/logs/testAPI.log
// Without building / installing
go run testAPI.go 2> /path/to/logs/testAPI.log
The pkg/log source在内部定义输出:
var std = New(os.Stderr, "", LstdFlags)
最后,来自the standard lib docs:
包日志实现了一个简单的日志包。它定义了一种类型, 记录器,具有格式化输出的方法。它还有一个预定义的 '标准'通过辅助函数访问记录器Print [f | ln], 致命[f | ln]和恐慌[f | ln],比创建一个更容易使用 记录器手动。该记录器写入标准错误并打印出来 每条记录消息的日期和时间。致命函数调用 os.Exit(1)写完日志消息后。恐慌函数调用 写完日志信息后发生恐慌。