ruby-on-rails - 设置shot弹枪以调试标记开始精简

标签 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


我将shot弹枪从$ DEBUG ruby​​变量设置为true开始,而不是让瘦服务器在打开调试标志的情况下启动。

如果我运行:

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


我得到一个错误。当环境设置为开发环境时,还有其他方法可以运行此方法,还是可以通过某种方式告诉Thin在调试器模式下启动?

最佳答案

您的-d and --debug options are being interpreted by Shotgun而不是Thin,这就是将$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没有任何关系。

关于ruby-on-rails - 设置shot弹枪以调试标记开始精简,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11528441/

相关文章:

ruby-on-rails - 我如何确定涡轮链接正在工作?

ruby-on-rails - 如何覆盖 Rails 中验证错误中的 html 格式?

java - NoClassDefFound错误: bea/jmapi/MethodProfileData when profiling app using JRockit Mission Control

ubuntu - Sinatra + Thin 的 Systemd 服务不断重启

ruby-on-rails - 使用 Websockets 部署瘦

ruby-on-rails - 在 Rails 中更改连接表中的列名

ruby-on-rails - 子类的循环依赖

c# - 调试时,如何在枚举中的任意位置启动 foreach 循环?

node.js - docker 中的 Node 检查器不加载源

Oracle 9 的 Java oci 数据库连接故障转移