web-dev-qa-db-fra.com

Puma - afficher les journaux complets lors de l'exécution du serveur avec le fichier de configuration

J'ai installé puma gem et quand je démarre Rails serveur par Rails s Je peux voir la sortie complète:

$ Rails s 
/Users/serj/.rvm/gems/Ruby-2.2.1@email_platform/gems/htmlentities-4.3.2/lib/htmlentities/mappings/expanded.rb:465: warning: duplicated key at line 466 ignored: "inodot"
=> Booting Puma
=> Rails 4.1.12 application starting in development on http://0.0.0.0:3000
=> Run `Rails server -h` for more startup options
=> Notice: server is listening on all interfaces (0.0.0.0). Consider using 127.0.0.1 (--binding option)
=> Ctrl-C to shutdown server
Puma 2.12.3 starting...
* Min threads: 0, max threads: 16
* Environment: development
* Listening on tcp://0.0.0.0:3000


Started GET "/templates/41" for 127.0.0.1 at 2015-08-06 14:10:32 -0400
Cache read: accont_by_domain/demo.lvh.me ({:expires_in=>86400 seconds})
Dalli::Server#connect 127.0.0.1:11211
Cache fetch_hit: accont_by_domain/demo.lvh.me ({:expires_in=>86400 seconds})
Processing by TemplatesController#show as HTML
  Parameters: {"id"=>"41"}
  User Load (1.1ms)  SELECT  "users".* FROM "users"  WHERE "users"."id" = $1 LIMIT 1  [["id", 543]]

Cependant, lorsque j'essaie d'exécuter puma en fournissant un fichier de configuration, je ne peux plus voir les journaux complets:

$ bundle exec puma -C config/puma.rb
[56872] Puma starting in cluster mode...
[56872] * Version 2.12.3 (Ruby 2.2.1-p85), codename: Plutonian Photo Shoot
[56872] * Min threads: 1, max threads: 1
[56872] * Environment: development
[56872] * Process workers: 2
[56872] * Preloading application
/Users/serj/.rvm/gems/Ruby-2.2.1@email_platform/gems/htmlentities-4.3.2/lib/htmlentities/mappings/expanded.rb:465: warning: duplicated key at line 466 ignored: "inodot"
[56872] * Listening on tcp://0.0.0.0:3000
[56872] ! WARNING: Detected 1 Thread(s) started in app boot:
[56872] ! #<Rack::MiniProfiler::FileStore::CacheCleanupThread:0x007fb58ccaa730@/Users/serj/.rvm/gems/Ruby-2.2.1@email_platform/gems/rack-mini-profiler-0.9.7/lib/mini_profiler/storage/file_store.rb:47 sleep> - /Users/serj/.rvm/gems/Ruby-2.2.1@email_platform/gems/rack-mini-profiler-0.9.7/lib/mini_profiler/storage/file_store.rb:65:in `sleep'
[56872] Use Ctrl-C to stop
[56872] - Worker 0 (pid: 56894) booted, phase: 0
[56872] - Worker 1 (pid: 56895) booted, phase: 0
[56894] 127.0.0.1 - - [06/Aug/2015:14:12:13 -0400] "GET /templates/41 HTTP/1.1" 200 45108 3.3802
[56894] 127.0.0.1 - - [06/Aug/2015:14:12:13 -0400] "GET /bootstrap-image-gallery.css?body=1 HTTP/1.1" 304 - 0.0379
[56894] 127.0.0.1 - - [06/Aug/2015:14:12:13 -0400] "GET /jquery.ui.autocomplete.css?body=1 HTTP/1.1" 304 - 0.0427
...

Existe-t-il un moyen d'afficher les journaux en tant que Rails s Est-ce que? Je veux avoir le même comportement que Rails s sans exécuter de commande supplémentaire. C'est possible?

Ma config puma:

workers Integer(ENV['WEB_CONCURRENCY'] || 2)
threads_count = Integer(ENV['MAX_THREADS'] || 1)
threads threads_count, threads_count

preload_app!

rackup      DefaultRackup
port        ENV['PORT']     || 3000
environment ENV['RACK_ENV'] || 'development'

on_worker_boot do
  # Worker specific setup for Rails 4.1+
  # See: https://devcenter.heroku.com/articles/deploying-Rails-applications-with-the-puma-web-server#on-worker-boot
  ActiveRecord::Base.establish_connection
end
12
ExiRe

Les journaux sont dans log/<Rails env>.log. Vous pouvez donc (dans un onglet/une fenêtre séparé) exécuter:

tail -f log/development.log

Et vous verrez toute votre sortie. Si vous voulez que la sortie de Rails soit fusionnée dans les journaux puma, vous pouvez toujours avoir Rails vous connecter à STDOUT:

config.logger = Logger.new(STDOUT)
34
Ian Selby

J'ai trouvé cette commande dans le Lisez-moi de Puma github :

$Rails s Puma

Ce qui se traduit également par le comportement souhaité.

Edit: En fait, comme décrit ici après l'installation de Puma, il devrait être automatiquement récupéré par la commande Rails s sans l'argument Puma.

2
Aakash Lakhotia

Si ce sont les journaux qui vous intéressent, vous pouvez suivre le fichier journal réel. Ce serait quelque chose comme ça tail -f log/development.log.

1
Jerry