I had an issue where I was not sure the
ActiveRecord::SessionStore was actually working (in hindsight: it worked). But to make sure, I needed to know what was stored in the session or retrieved.
All logging for the session-store is silenced, using
Obviously I was very interested in that logging, and did not find another to unsilence the logging but to add an initializer with the following code.
So in file
class ActiveRecord::Base def self.silence yield self end end
This will unsilence the
SessionStore logging. Your logging will look like this:
^[[1m^[[36mAREL (0.0ms)^[[0m ^[[1mUPDATE "sessions" SET "data" = 'BAh7DEkiFnF1aWN<<snipped to protect the inncocent>>iEi9mcC9kYXNoYm9hcmQ= ', "updated_at" = '2012-05-04 11:17:24.704491' WHERE "sessions"."id" = 33635
This at least allows us to verify that the sessions are stored and retrieved correctly. But how can we see what is stored inside the session? To be able to read or inspect what is actually stored in the session, you can use the following line:
session_data = 'BAh7DEkiFnF1aWN<<snipped to protect the inncocent>>iEi9mcC9kYXNoYm9hcmQ= ' Marshal.load(ActiveSupport::Base64.decode64(session_data))
And this will present your session data in a readable format.
This way I learned that a time-drift between our two servers caused a very obscure bug. I hope it can help you too.