Tag: 记录

puma生产服务器在后台:omniauth记录到stdout失败导致错误

我使用rails + puma作为我的生产服务器。 我使用httpd设置虚拟机并将请求转发给localhost:3000。 我用来启动我的puma服务器的命令是(已在app文件夹中) puma -e production -p 3000 & 当我仍然使用ssh登录服务器时,我的网络应用程序的一切都很好。 只有一些日志实际出现在屏幕上(我没注意它)。 但是,当我退出ssh会话时。 我不能使用omniauth(gem)。 我查看了服务器日志: Errno::EIO (Input/output error @ io_write – ): 我在网上寻找这个 – 这是一个IO连接问题,在我的情况下的原因应该是产生美洲狮的父进程已经完成但是puma试图记录它的东西。 所以我使用重定向,希望控制台没问题: puma -e production -p 3000 > log/console.log & 但问题仍然存在。 到目前为止,我认为它只与omniauth有关:它总是记录到stdout,即使我这样做“ https://github.com/intridea/omniauth/issues/583 ”。 所以现在我想我可以尝试更改omniauth的记录器或尝试“给stdout”到omniauth,即使它在后台运行 非常感谢:)

如何更改Rails 3.0的默认日志路径?

由于我公司的内部软件部署过程,我必须更改我的铁路应用程序的默认日志路径:基本上我的rails应用程序最终位于只读位置,我需要在“为此制作”目录中编写的日志文件。 使用Rails 2.x,我们在FCGI脚本中添加了一些黑魔法,以便在prod上部署时强制使用。 主机: class Rails::Configuration def default_log_path File.join(ENV[‘SOME_ENVIRONMENT_VAR’], “var/output/logs/rails.log”) end end 但是,在Rails 2.3(它是一个模块)中,Configuration不再是一个类了,在我看来,不再有任何default_log_path了…

Heroku Rails应用程序级别不记录

我在Heroku上有一个rails应用程序,它没有在应用程序级别登录。 当前版本: ruby1.9.3 铁轨3.1.3 在config / environment / production.rb中有以下行: config.logger = Logger.new(STDOUT) config.log_level = :info 我错过了什么? 我还应该寻找什么?

将轨道错误发送到rspec输出

我将Capybara与rspec结合使用,用于rails应用程序的集成测试。 我希望在测试期间生成的任何错误(路由错误,控制器中的错误,任何内容)与rspec输出中的“puts”语句相同。 这可能吗? 另外,这是一个合理的想法,还是我只是愚蠢?

Rails避免将嵌套对象的属性写入日志

如何防止rails中嵌套关系的某个参数进入日志文件 – 我正在将LARGE文件写入db中的列,并且不希望rails将其写入日志文件..我知道filter_parameter_logging但是它似乎不适用于嵌套模型 – 我可能只是在错误的位置?

在生产模式下获取“拒绝用户’root’@’localhost’(使用密码:NO)”并且没有记录错误

我部署了我的Rails应用程序,并且在所有页面上都出现了500个错误。 我的production.log没有显示任何内容(这是一个问题),但我做了’脚本/控制台生产’并试图运行一个简单的查询(User.find:first),它抛出这个: Access denied for user ‘root’@’localhost’ (using password: NO) 我的database.yml文件肯定有一个密码,这是正确的。 所以,加上没有错误记录到我的production.log文件让我想知道是什么。 我开始寻找的任何想法或问题是什么? 此外,为了它的价值,我在Apache上运行Passenger。 更新:这是我的database.yml文件内容 development: adapter: mysql encoding: utf8 database: website_development username: root password: secretz socket: /tmp/mysql.sock test: adapter: mysql encoding: utf8 database: website_test username: root password: secretz socket: /tmp/mysql.sock production: adapter: mysql encoding: utf8 database: website_production username: ttp_mysql password: secretz socket: /var/run/mysqld/mysqld.sock 新更新:我更改了mysql用户,因此它没有在root中运行,但现在我仍然得到“访问被拒绝’root’@’localhost’”位…即使在生产模式下它也不应该完全按照’root’运行。 […]

如何关闭sqlite3’sqlite_master’登录rails?

我的开发日志填满了 SELECT name FROM sqlite_master WHERE type =’table’AND NOT name =’sqlite_sequence’ 我想在sqlite3中关闭sqlite_master查询,这样我才能看到有趣的查询。

如何使rails + unicorn记录器线程安全?

我们一直在使用独角兽来部署我们的应用程序。 除了production.log文件之外,一切都很顺利,因为独角兽的设计方式,这个文件变得难以理解。 每个独角兽的实例写到同一个文件,导致所有的线条意大利面。 那么有没有办法告诉记录器在多个独角兽实例中独立记录?

如何禁用生产日志文件中的Rails RoutingError stacktrace打印输出?

在我自豪的rails应用程序中,我得到了所有类型的随机攻击请求asp,zip和rar文件。 Rails按预期呈现404页面,但我的生产日志文件被如下所示的RoutingError stacktrace转储所堵塞。 我的问题是:我可以在Apache / Passenger中阻止某些模式的URL吗? 或者至少我可以配置Rails只记录错误本身而不是打印整个堆栈跟踪? 谢谢! Processing ApplicationController#index (for 100.222.237.7 at 2011-03-22 10:59:54) [GET] ActionController::RoutingError (No route matches “/include/upfile_flash.asp” with {:host=>”www.myhost.com”, :method=>:get, :domain=>”myhost.com”, :subdomain=>”www”}): passenger (2.2.15) lib/phusion_passenger/rack/request_handler.rb:92:in `process_request’ passenger (2.2.15) lib/phusion_passenger/abstract_request_handler.rb:207:in `main_loop’ passenger (2.2.15) lib/phusion_passenger/railz/application_spawner.rb:441:in `start_request_handler’ passenger (2.2.15) lib/phusion_passenger/railz/application_spawner.rb:381:in `handle_spawn_application’ passenger (2.2.15) lib/phusion_passenger/utils.rb:252:in `safe_fork’ passenger (2.2.15) lib/phusion_passenger/railz/application_spawner.rb:377:in `handle_spawn_application’ passenger (2.2.15) lib/phusion_passenger/abstract_server.rb:352:in `__send__’ passenger […]

Rails – 请求的完成时间明显高于View和DB时间

我有一个控制器,它从一个相当复杂的关系查询返回JSON或XML,也有一些控制器逻辑。 我通过改进我的查询并确保我的索引对我的查询是正确的来调整数据库方面。 在我的日志中,我看到这样的项目: Completed in 740ms (View: 1, DB: 50) 因此,如果我理解正确,这意味着视图需要1秒钟才能渲染,数据库查询为50毫秒。 是控制器中的所有剩余时间吗? 我试过绕过我的控制器逻辑,只是把我的to_json和to_xml留在那里,它也一样慢。 作为参考点,我的平均返回JSON结果集是168k。 是否有其他步骤及时进入已完成状态? 它是否包括网络传输的最后一个字节之前的时间? 更新:我在基准测试块中包含了控制器的各个部分: self.class.benchmark(“Active Record Find”) do #my query here end 我发现即使日志行显示DB:50,我的活动记录查找几乎占用了剩余的所有时间。 所以现在我很困惑这个DB号码意味着什么,为什么基准线会说~~ 600ms,但DB:时间将是~50。 谢谢