【问题标题】:How to make `thin` webserver print log to STDOUT如何使“瘦”网络服务器打印日志到 STDOUT
【发布时间】:2013-10-26 14:16:44
【问题描述】:

上下文:要将 localhost 作为 SSL 运行,我遵循 instructions at this site

设置 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?

【问题讨论】:

标签: ruby-on-rails-4 thin


【解决方案1】:

我认为您需要告诉 Rails 使用 STDOUT 进行日志记录,而不是通过将 config.logger = Logger.new(STDOUT) 放入您的 app/config/environments/development.rb 来记录到 log/development.log

【讨论】:

  • 谢谢,但这对我不起作用,因为日志记录仅转到 STDOUT,而不是日志文件以及 STDOUT。
  • 我认为没有其他方法。当您使用rails server 运行rails 时,我什至不知道您有日志会进入标准输出。我总是使用工头启动我的应用程序并在其中跟踪日志。
  • 谢谢,工头很好地解决了这个问题。我只是添加了一个用于跟踪日志文件的条目,这很好!
【解决方案2】:

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

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

但话虽如此,这只会跟踪请求/响应标头,而不是特定于 rails 的日志,因为您可能正在将 rails 作为机架应用程序启动

我猜你需要在 ssl 模式下启动 Rails,你可以在 herehere 上找到几个文档

仅供参考,在 Rails 中使用 Thin 作为后端适配器,您只需将 gem 'thin' 添加到 Gemfile 并启动 rails 它会使用瘦适配器启动 rails 但你不能像启动瘦时那样传递瘦选项

【讨论】:

    【解决方案3】:

    确保您的config/environments/development.rb 文件配置为打印日志,如果不是,您可以在此处添加这些行。

    logger = ActiveSupport::Logger.new(STDOUT)
    logger.formatter = config.log_formatter
    config.logger = ActiveSupport::TaggedLogging.new(logger)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-17
      • 2021-04-28
      相关资源
      最近更新 更多