设置霰弹枪以使用其调试标志开始瘦身

时间:2012-07-17 18:15:14

标签: ruby-on-rails debugging thin shotgun

我试图让调试器gem使用shotgun,并且为了让调试器工作,我需要使用“Debugging ON”启动瘦服务器。

如果我跑:

shotgun -p 1378 -s thin -d -o 0.0.0.0
shotgun -p 1378 -s thin --debug -o 0.0.0.0

我从$ DEBUG ruby​​变量设置为true开始获取猎枪,而不是使用调试标志启动瘦服务器。

如果我跑:

shotgun -pp 1378 -s "thin --debug" -o 0.0.0.0

我收到错误。有没有其他方法可以运行它,或者某种方式告诉瘦在环境设置为开发时以调试器模式启动?

1 个答案:

答案 0 :(得分:1)

您的-d and --debug options are being interpreted by Shotgun,而不是精简版,这就是将$DEBUG设置为true的原因。

Thin的命令行标志,用于启用debugging is -D or --debug和此sets Thin::Logging.debug to true。您不能使用thin命令行选项(启动服务器的shotgun正在读取命令行的正弦),但您可以使用一些普通的Ruby代码设置此变量。一种方法是使用a shotgun.rb file,需要Thin并更改设置:

require 'thin'
Thin::Logging.debug = true

(您可能希望将其放在begin...rescue...block中,并在Thin不可用的情况下解除LoadError。)

没有此文件的输出:

$ shotgun
== Shotgun/Thin on http://127.0.0.1:9393/
>> Thin web server (v1.4.1 codename Chromeo)
>> Maximum connections set to 1024
>> Listening on 127.0.0.1:9393, CTRL+C to stop

并使用文件:

$ shotgun
== Shotgun/Thin on http://127.0.0.1:9393/
>> Thin web server (v1.4.1 codename Chromeo)
>> Debugging ON
>> Maximum connections set to 1024
>> Listening on 127.0.0.1:9393, CTRL+C to stop

据我所知,此设置仅影响Thin的日志记录的详细程度,并且与Debugger gem没有任何关系。