11

我正在使用 Rails 2.3.13,在我的 中environments/production.rb,我有:

config.log_level = :info
RAILS_DEFAULT_LOGGER = SyslogLogger.new('mysite-platform-production')

然而我log/production.log的却是空的。为什么会这样?

4

2 回答 2

11

您正在实例化 a SyslogLogger,因此您的日志记录将进入系统日志(在大多数情况下,在 Unix 系统上作为/var/log/syslog中的文件提供)而不是日志文件。您传递给记录器的参数 ( mysite-platform-production ) 是 syslog 使用的标识符,而不是文件名。

如果要记录到日志目录中的文件,则必须按如下方式设置记录器:

RAILS_DEFAULT_LOGGER = Logger.new('log/production.log')

但是:我很确定你实际上不必明确地这样做,但它是由 Rails 默认完成的,所以我建议不要RAILS_DEFAULT_LOGGER在你的代码中设置,你应该得到一个登录到log/production.log的记录器含蓄...

于 2013-03-11T19:22:10.760 回答
-1

鉴于您设置记录器的方式,您应该找到一个名为“mysite-platform-production”的文件,而不是 production.log,它将位于项目的根目录中。如果你想在“log/mysite-platform-production.log”中找到它,你必须这样做:

RAILS_DEFAULT_LOGGER = SyslogLogger.new('log/mysite-platform-production.log')
于 2013-03-11T14:44:30.707 回答