我有一台使用Ruby,Sinatra,Unicorn和nginx的服务器。我最近遇到了崩溃,在终端运行时重新产生了问题,我可以看到它产生了这个崩溃日志:
/Users/Andrew/.rvm/gems/ruby-2.3.0/gems/tweetstream-2.6.1/lib/tweetstream/client.rb:449:in `block in connect': Failed to reconnect after 6 tries. (TweetStream::ReconnectError)
from /Users/Andrew/.rvm/gems/ruby-2.3.0/gems/em-twitter-0.3.5/lib/em-twitter/connection.rb:297:in `invoke_callback'
from /Users/Andrew/.rvm/gems/ruby-2.3.0/gems/em-twitter-0.3.5/lib/em-twitter/connection.rb:269:in `rescue in schedule_reconnect'
from /Users/Andrew/.rvm/gems/ruby-2.3.0/gems/em-twitter-0.3.5/lib/em-twitter/connection.rb:264:in `schedule_reconnect'
from /Users/Andrew/.rvm/gems/ruby-2.3.0/gems/em-twitter-0.3.5/lib/em-twitter/connection.rb:92:in `unbind'
from /Users/Andrew/.rvm/gems/ruby-2.3.0/gems/eventmachine-1.2.0.1/lib/eventmachine.rb:1483:in `event_callback'
from /Users/Andrew/.rvm/gems/ruby-2.3.0/gems/eventmachine-1.2.0.1/lib/eventmachine.rb:194:in `run_machine'
from /Users/Andrew/.rvm/gems/ruby-2.3.0/gems/eventmachine-1.2.0.1/lib/eventmachine.rb:194:in `run'
from /Users/Andrew/.rvm/gems/ruby-2.3.0/gems/thin-1.7.0/lib/thin/backends/base.rb:73:in `start'
from /Users/Andrew/.rvm/gems/ruby-2.3.0/gems/thin-1.7.0/lib/thin/server.rb:162:in `start'
from /Users/Andrew/.rvm/gems/ruby-2.3.0/gems/rack-1.6.4/lib/rack/handler/thin.rb:19:in `run'
from /Users/Andrew/.rvm/gems/ruby-2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1506:in `start_server'
from /Users/Andrew/.rvm/gems/ruby-2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1444:in `run!'
from server.rb:234:in `<main>'
但是当我之前寻找错误日志时,我找不到类似上面的内容。
我的/etc/nginx/nginx.conf文件将此显示为日志的位置:
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
但我转到这两个目录,访问日志只显示所有请求,正如我所料,错误日志为空。
如果我的日志存储在其他地方,我该如何确定它的位置?或者,如果由于某种原因没有记录崩溃,我该如何确保崩溃?
答案 0 :(得分:1)
我建议您在stderr
文件中为独角兽设置stdout
和unicorn.rb
日志。
# set path to app that will be used to configure unicorn,
# note the trailing slash in this example
@dir = File.dirname(__FILE__) + '/'
worker_processes 2
working_directory @dir
timeout 30
# Specify path to socket unicorn listens to,
# we will use this in our nginx.conf later
listen "/home/vagrant/sockets/unicorn.sock", :backlog => 64
# Set process id path
pid "#{@dir}tmp/pids/unicorn.pid"
# Set log file paths
stderr_path "/var/log/unicorn/stderr.log"
stdout_path "/var/log/unicorn/stdout.log"