Rails开发模式下的日志记录:控制台与日志文件。

5
Rails 3.0,如此而已。在开发模式下,通常情况下,记录器消息会被写入 development.log 和控制台 console,如果你在交互式控制台中的话,这很好。但是有件事我搞不明白,如果我在启动过程中写了一个记录器消息(比如在 config.after_initialize 中),那么它就不会出现在控制台上,而只会出现在 log/development.log 文件中,这挺烦人的,因为我写某些配置时(输出某个配置),是为了让开发者看到它,因为这有助于调试。有人知道这是怎么回事吗?是否有什么可以解决的方法?

1
你在终端中运行了 tail -f log/development.log 吗? - ChuckJHardy
通常情况下,当您使用“rails server”启动Rails时,您会在控制台/终端中看到日志输出,没有任何特殊操作。等等,难道只有我遇到这种情况吗? - jrochkind
跟踪开发和测试日志总是比使用服务器请求输出更好的主意。试一试吧。如果你按照以下步骤,并将[WHATULOOKFOR]更改为你想在日志中查找的内容,那么当寻找自定义日志时,观看服务器输出就不是正确的做法了 -tail -f -n 500 log/development.log | egrep --color -E '[WHATULOOKFOR]|$' - ChuckJHardy
谢谢,但我仍然对我的实际问题感兴趣。在许多情况下,在控制台中查看输出非常方便,这对我来说通常不是问题(当它存在时)。 - jrochkind
1个回答

4

您只需要在记录器调用之前添加一个打印语句,例如:

config.after_initialize do
  print Rails.logger.info("Testing")
end

Rails控制台在初始化时不会自动显示任何内容,但它将显示您通过打印语句传递的任何内容。Rails.logger返回它写入日志的值,因此这真的很简单。

太感谢了!你这么说现在让我明白了。谢谢你知道我的问题的答案并回答它,而不是告诉我我不应该想做我所问的!我有点忘记了print方法居然还存在! - jrochkind

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接