ruby on rails - Differences between unicorn stdout log production log -



ruby on rails - Differences between unicorn stdout log production log -

i've built rails applications stores images in hierarchy structure. like: surveyor > survey > surveyseason > ... > capture > image

a capture can sorted @ variety of levels in hierarchy.

today, 1 of users reported while working @ 1 of these hierarchy levels, "error" occurred (500) , noticed info missing: info specific surveyseason (it's children well) deleted, both database , filesystem.

my initial guess accidentally nail delete button surveyseason, while thinking deleting single capture (a task doing around time). ui bug, if will.

to confirm this, i've dug log files, has led me few other questions.

unicorn.stdout.log

<ip-address-no1> - - [17/jun/2014 15:42:28] "get /captures/7990?_pjax=%5bdata-pjax-container%5d http/1.0" 304 - 0.9869 <ip-address-no1> - - [17/jun/2014 15:42:30] "delete /captures/7990 http/1.0" 302 - 1.3208 <ip-address-no1> - - [17/jun/2014 15:42:30] "get /survey_seasons/46 http/1.0" 304 - 0.2305 <ip-address-no1> - - [17/jun/2014 15:42:32] "get /application/treedata http/1.0" 200 - 1.9542 <ip-address-no2> - - [17/jun/2014 15:42:35] "get /historic_captures/15345?_pjax=%5bdata-pjax-container%5d http/1.0" 200 - 0.6459 <ip-address-no1> - - [17/jun/2014 15:42:37] "get /captures/7996?_pjax=%5bdata-pjax-container%5d http/1.0" 200 - 1.0446 <ip-address-no2> - - [17/jun/2014 15:42:40] "post /historic_captures/move http/1.0" 200 - 0.0733 <ip-address-no1> - - [17/jun/2014 15:42:45] "get /captures/7984?_pjax=%5bdata-pjax-container%5d http/1.0" 200 - 1.0281 <ip-address-no1> - - [17/jun/2014 15:42:50] "get /captures/7984?_pjax=%5bdata-pjax-container%5d http/1.0" 304 - 1.0118 ----><ip-address-no1> - - [17/jun/2014 15:42:58] "delete /500 http/1.0" 500 643 7.9431 <ip-address-no2> - - [17/jun/2014 15:42:59] "get /historic_captures/15634?_pjax=%5bdata-pjax-container%5d http/1.0" 200 - 0.5702 <ip-address-no1> - - [17/jun/2014 15:43:01] "get /404 http/1.0" 404 728 0.0110 <ip-address-no2> - - [17/jun/2014 15:43:03] "post /historic_captures/move http/1.0" 200 - 0.0620 <ip-address-no1> - - [17/jun/2014 15:43:11] "get / http/1.0" 200 - 2.9165 <ip-address-no1> - - [17/jun/2014 15:43:11] "get /application/treedata http/1.0" 200 - 0.0133 <ip-address-no1> - - [17/jun/2014 15:43:18] "get /application/treedata?id=11&type=surveyor http/1.0" 304 - 0.0071 <ip-address-no1> - - [17/jun/2014 15:43:20] "get /application/treedata?id=40&type=survey http/1.0" 200 - 0.0111 <ip-address-no1> - - [17/jun/2014 15:43:22] "get /surveys/40?_pjax=%5bdata-pjax-container%5d http/1.0" 304 - 0.2521 <ip-address-no1> - - [17/jun/2014 15:43:27] "get /surveys/23?_pjax=%5bdata-pjax-container%5d http/1.0" 200 - 0.3092 <ip-address-no2> - - [17/jun/2014 15:43:28] "get /historic_captures/15634?_pjax=%5bdata-pjax-container%5d http/1.0" 200 - 0.6675 <ip-address-no1> - - [17/jun/2014 15:43:28] "get /application/treedata?id=23&type=survey http/1.0" 200 - 0.0126 <ip-address-no1> - - [17/jun/2014 15:43:30] "get /surveys/40?_pjax=%5bdata-pjax-container%5d http/1.0" 304 - 0.2498 <ip-address-no2> - - [17/jun/2014 15:43:32] "get /historic_captures/15344?_pjax=%5bdata-pjax-container%5d http/1.0" 200 - 0.6263 <ip-address-no2> - - [17/jun/2014 15:43:35] "get /historic_captures/15634?_pjax=%5bdata-pjax-container%5d http/1.0" 304 - 0.5708 <ip-address-no1> - - [17/jun/2014 15:43:38] "get /surveyors/11?_pjax=%5bdata-pjax-container%5d http/1.0" 304 - 0.3119 <ip-address-no1> - - [17/jun/2014 15:43:39] "get /surveys/40?_pjax=%5bdata-pjax-container%5d http/1.0" 304 - 0.2575 <ip-address-no1> - - [17/jun/2014 15:43:47] "get /surveyors/11?_pjax=%5bdata-pjax-container%5d http/1.0" 304 - 0.2543 --------><ip-address-no1> - - [17/jun/2014 15:43:51] "delete /survey_seasons/46 http/1.0" 302 - 193.3085 <ip-address-no1> - - [17/jun/2014 15:43:52] "get /surveys/40?_pjax=%5bdata-pjax-container%5d http/1.0" 304 - 0.3568 <ip-address-no1> - - [17/jun/2014 15:43:54] "get /surveys/23?_pjax=%5bdata-pjax-container%5d http/1.0" 304 - 0.2928 <ip-address-no1> - - [17/jun/2014 15:43:56] "get /surveyors/11?_pjax=%5bdata-pjax-container%5d http/1.0" 304 - 0.3733 <ip-address-no1> - - [17/jun/2014 15:44:13] "get /surveys/40?_pjax=%5bdata-pjax-container%5d http/1.0" 304 - 0.2504 <ip-address-no1> - - [17/jun/2014 15:44:25] "get /surveyors/11?_pjax=%5bdata-pjax-container%5d http/1.0" 304 - 0.4014 <ip-address-no1> - - [17/jun/2014 15:44:29] "get /surveys/40?_pjax=%5bdata-pjax-container%5d http/1.0" 304 - 0.2655

production.log

started delete "/captures/7990" <ip-address-no1> @ 2014-06-17 15:42:28 -0700 processing capturescontroller#destroy html parameters: {"authenticity_token"=>"ionwcsblvofty/gry3srk5wtuzdi3uqeblixwi+spau=", "id"=>"7990"} redirected http://envi-mountain-0003.envi.uvic.ca/survey_seasons/46 completed 302 found in 1318.1ms (activerecord: 18.8ms) started "/survey_seasons/46" <ip-address-no1> @ 2014-06-17 15:42:30 -0700 processing surveyseasonscontroller#show html parameters: {"id"=>"46"} completed 200 ok in 227.6ms (views: 219.5ms | activerecord: 1.3ms) started "/application/treedata" <ip-address-no1> @ 2014-06-17 15:42:30 -0700 processing applicationcontroller#treedata json completed 200 ok in 1950.9ms (views: 902.7ms | activerecord: 1048.0ms) started "/historic_captures/15345?_pjax=%5bdata-pjax-container%5d" <ip-address-no2> @ 2014-06-17 15:42:34 -0700 processing historiccapturescontroller#show html parameters: {"_pjax"=>"[data-pjax-container]", "id"=>"15345"} completed 200 ok in 619.9ms (views: 293.4ms | activerecord: 100.1ms) started "/captures/7996?_pjax=%5bdata-pjax-container%5d" <ip-address-no1> @ 2014-06-17 15:42:36 -0700 processing capturescontroller#show html parameters: {"_pjax"=>"[data-pjax-container]", "id"=>"7996"} completed 200 ok in 1018.6ms (views: 254.3ms | activerecord: 227.5ms) started post "/historic_captures/move" <ip-address-no2> @ 2014-06-17 15:42:40 -0700 processing historiccapturescontroller#move */* parameters: {"id"=>"15345", "parent_id"=>"1772", "parent_type"=>"historicvisit"} completed 200 ok in 70.5ms (activerecord: 11.9ms) started "/captures/7984?_pjax=%5bdata-pjax-container%5d" <ip-address-no1> @ 2014-06-17 15:42:44 -0700 processing capturescontroller#show html parameters: {"_pjax"=>"[data-pjax-container]", "id"=>"7984"} completed 200 ok in 1003.3ms (views: 242.6ms | activerecord: 209.6ms) started "/captures/7984?_pjax=%5bdata-pjax-container%5d" <ip-address-no1> @ 2014-06-17 15:42:49 -0700 processing capturescontroller#show html parameters: {"_pjax"=>"[data-pjax-container]", "id"=>"7984"} completed 200 ok in 986.3ms (views: 240.3ms | activerecord: 205.5ms) ---->started delete "/captures/7984" <ip-address-no1> @ 2014-06-17 15:42:50 -0700 processing capturescontroller#destroy html parameters: {"authenticity_token"=>"ionwcsblvofty/gry3srk5wtuzdi3uqeblixwi+spau=", "id"=>"7984"} completed 500 internal server error in 7914.9ms sent mail service me@gmail.com (8.7ms) nomethoderror (undefined method `filesystem_path' nil:nilclass): app/decorators/controllers/captures_controller_decorator.rb:52:in `destroy' started "/historic_captures/15634?_pjax=%5bdata-pjax-container%5d" <ip-address-no2> @ 2014-06-17 15:42:58 -0700 processing historiccapturescontroller#show html parameters: {"_pjax"=>"[data-pjax-container]", "id"=>"15634"} completed 200 ok in 545.5ms (views: 239.0ms | activerecord: 98.9ms) started "/captures/7984" <ip-address-no1> @ 2014-06-17 15:43:01 -0700 processing capturescontroller#show html parameters: {"id"=>"7984"} completed 404 not found in 6.0ms activerecord::recordnotfound (couldn't find capture id=7984): activerecord (3.2.17) lib/active_record/relation/finder_methods.rb:344:in `find_one' activerecord (3.2.17) lib/active_record/relation/finder_methods.rb:315:in `find_with_ids' activerecord (3.2.17) lib/active_record/relation/finder_methods.rb:107:in `find' activerecord (3.2.17) lib/active_record/querying.rb:5:in `find' cancan (1.6.9) lib/cancan/model_adapters/abstract_adapter.rb:20:in `find' cancan (1.6.9) lib/cancan/controller_resource.rb:114:in `find_resource' cancan (1.6.9) lib/cancan/controller_resource.rb:68:in `load_resource_instance' cancan (1.6.9) lib/cancan/controller_resource.rb:32:in `load_resource' cancan (1.6.9) lib/cancan/controller_resource.rb:25:in `load_and_authorize_resource' cancan (1.6.9) lib/cancan/controller_resource.rb:10:in `block in add_before_filter' activesupport (3.2.17) lib/active_support/callbacks.rb:440:in `_run__521194440980891993__process_action__1920079375602021026__callbacks' activesupport (3.2.17) lib/active_support/callbacks.rb:405:in `__run_callback' activesupport (3.2.17) lib/active_support/callbacks.rb:385:in `_run_process_action_callbacks' activesupport (3.2.17) lib/active_support/callbacks.rb:81:in `run_callbacks' actionpack (3.2.17) lib/abstract_controller/callbacks.rb:17:in `process_action' actionpack (3.2.17) lib/action_controller/metal/rescue.rb:29:in `process_action' actionpack (3.2.17) lib/action_controller/metal/instrumentation.rb:30:in `block in process_action' activesupport (3.2.17) lib/active_support/notifications.rb:123:in `block in instrument' activesupport (3.2.17) lib/active_support/notifications/instrumenter.rb:20:in `instrument' activesupport (3.2.17) lib/active_support/notifications.rb:123:in `instrument' actionpack (3.2.17) lib/action_controller/metal/instrumentation.rb:29:in `process_action' actionpack (3.2.17) lib/action_controller/metal/params_wrapper.rb:207:in `process_action' activerecord (3.2.17) lib/active_record/railties/controller_runtime.rb:18:in `process_action' actionpack (3.2.17) lib/abstract_controller/base.rb:121:in `process' actionpack (3.2.17) lib/abstract_controller/rendering.rb:45:in `process' actionpack (3.2.17) lib/action_controller/metal.rb:203:in `dispatch' actionpack (3.2.17) lib/action_controller/metal/rack_delegation.rb:14:in `dispatch' actionpack (3.2.17) lib/action_controller/metal.rb:246:in `block in action' actionpack (3.2.17) lib/action_dispatch/routing/route_set.rb:73:in `call' actionpack (3.2.17) lib/action_dispatch/routing/route_set.rb:73:in `dispatch' actionpack (3.2.17) lib/action_dispatch/routing/route_set.rb:36:in `call' journey (1.0.4) lib/journey/router.rb:68:in `block in call' journey (1.0.4) lib/journey/router.rb:56:in `each' journey (1.0.4) lib/journey/router.rb:56:in `call' actionpack (3.2.17) lib/action_dispatch/routing/route_set.rb:608:in `call' exception_notification (4.0.1) lib/exception_notification/rack.rb:28:in `call' warden (1.2.1) lib/warden/manager.rb:35:in `block in call' warden (1.2.1) lib/warden/manager.rb:34:in `catch' warden (1.2.1) lib/warden/manager.rb:34:in `call' rack-pjax (0.7.0) lib/rack/pjax.rb:12:in `call' actionpack (3.2.17) lib/action_dispatch/middleware/best_standards_support.rb:17:in `call' rack (1.4.5) lib/rack/etag.rb:23:in `call' rack (1.4.5) lib/rack/conditionalget.rb:25:in `call' actionpack (3.2.17) lib/action_dispatch/middleware/head.rb:14:in `call' actionpack (3.2.17) lib/action_dispatch/middleware/params_parser.rb:21:in `call' actionpack (3.2.17) lib/action_dispatch/middleware/flash.rb:242:in `call' rack (1.4.5) lib/rack/session/abstract/id.rb:210:in `context' rack (1.4.5) lib/rack/session/abstract/id.rb:205:in `call' actionpack (3.2.17) lib/action_dispatch/middleware/cookies.rb:341:in `call' activerecord (3.2.17) lib/active_record/query_cache.rb:64:in `call' activerecord (3.2.17) lib/active_record/connection_adapters/abstract/connection_pool.rb:479:in `call' actionpack (3.2.17) lib/action_dispatch/middleware/callbacks.rb:28:in `block in call' activesupport (3.2.17) lib/active_support/callbacks.rb:405:in `_run__1749978080951018086__call__3020754741183455638__callbacks' activesupport (3.2.17) lib/active_support/callbacks.rb:405:in `__run_callback' activesupport (3.2.17) lib/active_support/callbacks.rb:385:in `_run_call_callbacks' activesupport (3.2.17) lib/active_support/callbacks.rb:81:in `run_callbacks' actionpack (3.2.17) lib/action_dispatch/middleware/callbacks.rb:27:in `call' rack (1.4.5) lib/rack/sendfile.rb:102:in `call' actionpack (3.2.17) lib/action_dispatch/middleware/remote_ip.rb:31:in `call' actionpack (3.2.17) lib/action_dispatch/middleware/debug_exceptions.rb:16:in `call' actionpack (3.2.17) lib/action_dispatch/middleware/show_exceptions.rb:56:in `call' railties (3.2.17) lib/rails/rack/logger.rb:32:in `call_app' railties (3.2.17) lib/rails/rack/logger.rb:16:in `block in call' activesupport (3.2.17) lib/active_support/tagged_logging.rb:22:in `tagged' railties (3.2.17) lib/rails/rack/logger.rb:16:in `call' actionpack (3.2.17) lib/action_dispatch/middleware/request_id.rb:22:in `call' rack (1.4.5) lib/rack/methodoverride.rb:21:in `call' rack (1.4.5) lib/rack/runtime.rb:17:in `call' activesupport (3.2.17) lib/active_support/cache/strategy/local_cache.rb:72:in `call' rack (1.4.5) lib/rack/lock.rb:15:in `call' rack-cache (1.2) lib/rack/cache/context.rb:136:in `forward' rack-cache (1.2) lib/rack/cache/context.rb:245:in `fetch' rack-cache (1.2) lib/rack/cache/context.rb:185:in `lookup' rack-cache (1.2) lib/rack/cache/context.rb:66:in `call!' rack-cache (1.2) lib/rack/cache/context.rb:51:in `call' railties (3.2.17) lib/rails/engine.rb:484:in `call' railties (3.2.17) lib/rails/application.rb:231:in `call' railties (3.2.17) lib/rails/railtie/configurable.rb:30:in `method_missing' rack (1.4.5) lib/rack/commonlogger.rb:33:in `call' sinatra (1.3.5) lib/sinatra/base.rb:161:in `call' rack (1.4.5) lib/rack/chunked.rb:43:in `call' rack (1.4.5) lib/rack/content_length.rb:14:in `call' unicorn (4.8.2) lib/unicorn/http_server.rb:572:in `process_client' unicorn (4.8.2) lib/unicorn/http_server.rb:666:in `worker_loop' unicorn (4.8.2) lib/unicorn/http_server.rb:521:in `spawn_missing_workers' unicorn (4.8.2) lib/unicorn/http_server.rb:532:in `maintain_worker_count' unicorn (4.8.2) lib/unicorn/http_server.rb:290:in `join' unicorn (4.8.2) bin/unicorn:126:in `<top (required)>' /rails_applications/deployments/meat/shared/bundle/ruby/1.9.1/bin/unicorn:23:in `load' /rails_applications/deployments/meat/shared/bundle/ruby/1.9.1/bin/unicorn:23:in `<main>' started post "/historic_captures/move" <ip-address-no2> @ 2014-06-17 15:43:03 -0700 processing historiccapturescontroller#move */* parameters: {"id"=>"15345", "parent_id"=>"10", "parent_type"=>"surveyseason"} completed 200 ok in 59.2ms (activerecord: 12.0ms) started "/" <ip-address-no1> @ 2014-06-17 15:43:08 -0700 processing staticpagescontroller#home html parameters: {"layout"=>"app/views/layouts/application.html.erb"} completed 200 ok in 2912.3ms (views: 467.7ms | activerecord: 2444.4ms) started "/application/treedata" <ip-address-no1> @ 2014-06-17 15:43:11 -0700 processing applicationcontroller#treedata json completed 200 ok in 10.6ms (views: 9.3ms | activerecord: 1.1ms) started "/application/treedata?id=11&type=surveyor" <ip-address-no1> @ 2014-06-17 15:43:18 -0700 processing applicationcontroller#treedata json parameters: {"id"=>"11", "type"=>"surveyor"} completed 200 ok in 4.2ms (views: 2.0ms | activerecord: 0.7ms) started "/application/treedata?id=40&type=survey" <ip-address-no1> @ 2014-06-17 15:43:20 -0700 processing applicationcontroller#treedata json parameters: {"id"=>"40", "type"=>"survey"} completed 200 ok in 8.2ms (views: 3.3ms | activerecord: 3.4ms) started "/surveys/40?_pjax=%5bdata-pjax-container%5d" <ip-address-no1> @ 2014-06-17 15:43:21 -0700 processing surveyscontroller#show html parameters: {"_pjax"=>"[data-pjax-container]", "id"=>"40"} completed 200 ok in 227.6ms (views: 219.8ms | activerecord: 1.1ms) started "/surveys/23?_pjax=%5bdata-pjax-container%5d" <ip-address-no1> @ 2014-06-17 15:43:27 -0700 processing surveyscontroller#show html parameters: {"_pjax"=>"[data-pjax-container]", "id"=>"23"} completed 200 ok in 284.3ms (views: 276.6ms | activerecord: 1.2ms) started "/historic_captures/15634?_pjax=%5bdata-pjax-container%5d" <ip-address-no2> @ 2014-06-17 15:43:27 -0700 processing historiccapturescontroller#show html parameters: {"_pjax"=>"[data-pjax-container]", "id"=>"15634"} completed 200 ok in 641.7ms (views: 234.2ms | activerecord: 125.7ms) started "/application/treedata?id=23&type=survey" <ip-address-no1> @ 2014-06-17 15:43:28 -0700 processing applicationcontroller#treedata json parameters: {"id"=>"23", "type"=>"survey"} completed 200 ok in 10.0ms (views: 3.5ms | activerecord: 5.0ms) started "/surveys/40?_pjax=%5bdata-pjax-container%5d" <ip-address-no1> @ 2014-06-17 15:43:29 -0700 processing surveyscontroller#show html parameters: {"_pjax"=>"[data-pjax-container]", "id"=>"40"} completed 200 ok in 225.0ms (views: 217.5ms | activerecord: 1.1ms) started "/historic_captures/15344?_pjax=%5bdata-pjax-container%5d" <ip-address-no2> @ 2014-06-17 15:43:31 -0700 processing historiccapturescontroller#show html parameters: {"_pjax"=>"[data-pjax-container]", "id"=>"15344"} completed 200 ok in 601.2ms (views: 234.7ms | activerecord: 100.2ms) started "/historic_captures/15634?_pjax=%5bdata-pjax-container%5d" <ip-address-no2> @ 2014-06-17 15:43:35 -0700 processing historiccapturescontroller#show html parameters: {"_pjax"=>"[data-pjax-container]", "id"=>"15634"} completed 200 ok in 545.2ms (views: 229.1ms | activerecord: 99.9ms) started "/surveyors/11?_pjax=%5bdata-pjax-container%5d" <ip-address-no1> @ 2014-06-17 15:43:37 -0700 processing surveyorscontroller#show html parameters: {"_pjax"=>"[data-pjax-container]", "id"=>"11"} completed 200 ok in 286.2ms (views: 278.9ms | activerecord: 0.6ms) started "/surveys/40?_pjax=%5bdata-pjax-container%5d" <ip-address-no1> @ 2014-06-17 15:43:39 -0700 processing surveyscontroller#show html parameters: {"_pjax"=>"[data-pjax-container]", "id"=>"40"} completed 200 ok in 232.7ms (views: 225.3ms | activerecord: 0.9ms) started "/surveyors/11?_pjax=%5bdata-pjax-container%5d" <ip-address-no1> @ 2014-06-17 15:43:47 -0700 processing surveyorscontroller#show html parameters: {"_pjax"=>"[data-pjax-container]", "id"=>"11"} completed 200 ok in 228.9ms (views: 221.0ms | activerecord: 0.8ms) redirected http://envi-mountain-0003.envi.uvic.ca/surveys/40 -------->completed 302 found in 193305.5ms (activerecord: 11008.7ms) started "/surveys/40?_pjax=%5bdata-pjax-container%5d" <ip-address-no1> @ 2014-06-17 15:43:52 -0700 processing surveyscontroller#show html parameters: {"_pjax"=>"[data-pjax-container]", "id"=>"40"} completed 200 ok in 328.6ms (views: 320.2ms | activerecord: 1.2ms) started "/surveys/23?_pjax=%5bdata-pjax-container%5d" <ip-address-no1> @ 2014-06-17 15:43:54 -0700 processing surveyscontroller#show html parameters: {"_pjax"=>"[data-pjax-container]", "id"=>"23"} completed 200 ok in 268.4ms (views: 261.0ms | activerecord: 0.9ms) started "/surveyors/11?_pjax=%5bdata-pjax-container%5d" <ip-address-no1> @ 2014-06-17 15:43:56 -0700 processing surveyorscontroller#show html parameters: {"_pjax"=>"[data-pjax-container]", "id"=>"11"} completed 200 ok in 347.9ms (views: 339.6ms | activerecord: 0.8ms) started "/surveys/40?_pjax=%5bdata-pjax-container%5d" <ip-address-no1> @ 2014-06-17 15:44:13 -0700 processing surveyscontroller#show html parameters: {"_pjax"=>"[data-pjax-container]", "id"=>"40"} completed 200 ok in 226.3ms (views: 218.3ms | activerecord: 1.2ms) started "/surveyors/11?_pjax=%5bdata-pjax-container%5d" <ip-address-no1> @ 2014-06-17 15:44:25 -0700 processing surveyorscontroller#show html parameters: {"_pjax"=>"[data-pjax-container]", "id"=>"11"} completed 200 ok in 376.3ms (views: 367.8ms | activerecord: 0.7ms) started "/surveys/40?_pjax=%5bdata-pjax-container%5d" <ip-address-no1> @ 2014-06-17 15:44:29 -0700 processing surveyscontroller#show html parameters: {"_pjax"=>"[data-pjax-container]", "id"=>"40"} completed 200 ok in 240.8ms (views: 232.5ms | activerecord: 1.2ms)

note: i've replaced valid ip addressed .

in both logs, i've prefixed relevant lines arrows.

----> seems 500 internal server error occurred, when trying delete capture 7984. in production.log, it's clear delete request on route /captures/7984. on unicorn log, why show delete /500 http/1.0 500? me, appears requesting delete path /500 , returning 500 response.

--------> surveyseason gets deleted. in unicorn log, seems clear sent request delete object explicitly. however, on production.log completed 302 found in 193305.5ms (activerecord: 11008.7ms). seems pretty mysterious me. ideas why these events reported differently?

i'm hoping bottom of this. help appreciated.

ruby-on-rails ruby-on-rails-3 logging unicorn

Comments

Popular posts from this blog

php - Android app custom user registration and login with cookie using facebook sdk -

django - Access session in user model .save() -

php - .htaccess Multiple Rewrite Rules / Prioritizing -