去与大猩猩多路复用器的记录器装饰

时间:2015-02-25 23:17:38

标签: logging go

我是Go的新手,并在mux中使用http://thenewstack.io/make-a-restful-json-api-go/创建一些REST API。虽然它主要工作正常,但我没有看到使用log.Println记录HTTP请求的Logger装饰器按预期进行控制台记录。

我错过了什么吗?此外,看起来在路由列表范围内调用Logger时,这是记录每个请求的正确方法吗?

1 个答案:

答案 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)写完日志消息后。恐慌函数调用   写完日志信息后发生恐慌。