Ruby on rails 生产日志是否为空?

Ruby on rails 生产日志是否为空?,ruby-on-rails,configuration,puma,Ruby On Rails,Configuration,Puma,我的彪马配置: path = Dir.pwd + "/tmp/puma/" threads 0,20 environment "production" daemonize true drain_on_shutdown true bind "unix://" + path + "socket/puma.sock" pidfile path + "pid/puma.pid" state_path path + "pid/puma.state" 我的环境/production.rb MyApp

我的彪马配置:

path = Dir.pwd + "/tmp/puma/"

threads 0,20
environment "production"
daemonize true
drain_on_shutdown true

bind  "unix://" + path + "socket/puma.sock"
pidfile path + "pid/puma.pid"
state_path path + "pid/puma.state"
我的环境/production.rb

MyApp::Application.configure do    
  config.log_level = :debug
end
我启动我的服务器:

starkers@ubuntu:~/Desktop/myspp$ pumactl -F config/puma.rb start
=> Booting Puma
=> Rails 4.0.2 application starting in production on http://0.0.0.0:3000
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
config.eager_load is set to nil. Please update your config/environments/*.rb files accordingly:

  * development - set it to false
  * test - set it to false (unless you use a tool that preloads your test environment)
  * production - set it to true

Puma 2.8.2 starting...
* Min threads: 0, max threads: 16
* Environment: production
* Listening on tcp://0.0.0.0:3000
我浏览我的应用程序。我的日志/production.log为空。不知道为什么

在我的整个应用程序中,目录访问是
0777

不知道是什么原因造成的。确实需要日志(显然)。发生在本地和远程,因此这与我的配置有关。但是我不确定是什么配置。puma/ubuntu/rails中是否有可能导致这种情况?

development.log工作得很好我已将development.rb复制粘贴到production.rb文件中。一模一样。可以相同的development.rb和production.rb,但:

RAILS_ENV=development rails s
填充development.log


让production.log和Kim Kardashian的头一样空

在配置文件末尾设置
bind

path = Dir.pwd + "/tmp/puma/"

threads 0,20
environment "production"
daemonize true
drain_on_shutdown true

pidfile path + "pid/puma.pid"
state_path path + "pid/puma.state"
bind  "unix://" + path + "socket/puma.sock"
我使用命令
pumactl-F config/puma.rb start
来启动服务器(我想这并没有什么区别,但无论如何)

我建议对路径使用
#{}

pidfile "#{path}pid/puma.pid"
state_path "#{path}pid/puma.state"
bind  "unix://#{path}socket/puma.sock"
但这是你的选择

希望它能帮上忙(对我来说,你的配置也不起作用)

您还可以添加Puma日志:

stdout_redirect "#{Dir.pwd}/log/puma.stdout.log", "#{Dir.pwd}/log/puma.stderr.log"

bind

之前添加这一行如果要将服务器的输出添加到日志中,最简单的方法是告诉您的系统这样做。运行服务器启动命令,如:

pumactl -F config/puma.rb start >> log/development.log
将服务器的每一行输出附加到开发日志中。虽然为了便于调试,您可能希望为每台服务器提供自己的日志,例如
log/puma.log
。如果您这样做,您可能希望在每次启动服务器时从头重写文件,而不是保留累积日志,如果是这种情况,只需将
转换为
,例如:

pumactl -F config/puma.rb start > log/puma.log
但是,如果将系统设置为在服务器出现故障时自动重新启动服务器,则使用
将覆盖日志,以了解服务器重新启动时可能导致崩溃的原因

类似地,您可以通过启动rails服务器使
production.log
正常工作,如下所示:

RAILS_ENV=production rails s >> log/production.log
如果希望像在生产环境中一样在后台运行服务器,可以在末尾添加
&
字符,如:

pumactl -F config/puma.rb start > log/puma.log &
如果执行此操作,您可能需要存储进程标识符,以便稍后可以关闭服务器,因为
^C
不适用于后台进程。要存储进程id,请在
lib/pids/puma.pid
之类的位置创建另一个空文件,然后将该puma服务器的进程id导出到空文件,如:

pumactl -F config/puma.rb start > log/puma.log &
echo $! > lib/pids/puma.pid
然后,您可以通过以下方式终止服务器:

kill `cat lib/pids/puma.pid`
请务必记住,即使将服务器的输出附加到
development.log
文件中,它也不会显示在development rails服务器的输出中。如果要实时查看日志以进行调试,可以使用
tailf
命令,例如:

tailf log/puma.log

要了解有关命令行界面的更多信息,可以使用。

不确定是否输入错误,但文件是
log/production.log
听起来像是权限问题,仅出于测试目的,将log/production.log上的权限设置为777,看看这是否有区别。我运行了
sudo chmod 777-R app_root
重新启动了服务器,但仍然没有生产日志!然而,我现在确实在开发中得到了日志(我以前没有),因为您没有包括您的配置。您应该启动服务器
puma-c config/puma.rb-e production
@zishe I将其设置为false,没有区别。
tailf log/puma.log