我试图让调试器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
我收到错误。有没有其他方法可以运行它,或者某种方式告诉瘦在环境设置为开发时以调试器模式启动?
答案 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没有任何关系。