问题 如何使`thin` webserver打印日志到STDOUT


上下文:要将localhost作为SSL运行,我按照了 本网站的说明

设置SSL证书后,为了运行本地rails服务器,该站点说:

thin start --ssl <some more options>

当我这样做时,我注意到我不再看到Rails日志被打印到STDOUT。

我怎么能通过 --ssl 和其他选择 thin ?这不起作用:

bundle exec rails s thin --ssl

.../rails/commands/server.rb:33:in `parse!': 
    invalid option: --ssl (OptionParser::InvalidOption)

或者,我怎么才能得到 thin 将Rails日志输出到STDOUT?


6057
2017-10-17 21:35


起源

有关: stackoverflow.com/a/7829852/1505348 - Lucio


答案:


我认为你需要告诉rails使用 STDOUT 用于记录而不是记录到 log/development.log 通过推杆 config.logger = Logger.new(STDOUT) 在你的 app/config/environments/development.rb


11
2017-10-17 22:08



谢谢,但这对我不起作用,因为日志记录只转到STDOUT,而不是日志文件和STDOUT。 - Zabba
我不认为还有另一种方式。当你运行rails时,我甚至都不知道你有登录stdout的日志 rails server。我总是使用工头启动我的应用程序并在那里拖尾日志。 - phoet
谢谢,工头很好地解决了这个问题。我只是添加了一个用于拖尾日志文件的条目,这很好! - Zabba


Well Thin显式不会默认记录任何内容,除非您通过传递选项指定它

-D or --debug and -V or --trace 

但是,已经说过这只会跟踪请求/响应标头,但不会跟踪特定于日志的日志,因为您可能会将rails作为机架应用程序启动

我想你需要在ssl模式下启动rails,你可以找到几个文档 这里 和 这里 

仅在FYI中使用thin作为后端适配器,您只需添加即可 gem 'thin' 到Gemfile 并启动rails它会使用瘦适配器启动rails但你不能像瘦身那样通过瘦选项


4
2017-10-18 08:44