Configure Ruby Logging
  • 2 Minutes to read
  • Dark
  • PDF

Configure Ruby Logging

  • Dark
  • PDF

Article summary

To configure your Ruby application, an Application Programming Interface (API) can also be used to send Errors and Logs to Retrace. The step-by-step process is presented below and for more information, visit this Stackify API for Ruby Github page:

Installation and Configuration


  • Ruby 1.9/2.0/2.1
  • Rails 3.x/4.x (optional)


Add the Stackify gem to your Gemfile. In the Gemfile:

gem 'stackify-api-ruby'

Run the bundle command to install it using the following command:

$ bundle install

Or install it manually:

$ gem install stackify-api-ruby

Once you are done installing stackify-api-ruby, you need to run the generator:

$ rails g stackify --api_key=your_api_key

The generator creates a file 'config/initializers/stackify.rb' that configures stackify-api-ruby with your API key. You can change the default settings in there.


When using stackify-api-ruby gem within any Ruby application, add the following code snippet on the top of your main file:

require 'stackify-api-ruby'

Once you are done, you need to make a base configuration:

Stackify.setup do |config|
  config.api_key = "your_api_key"
  config.env = :development
  config.app_name = "Your app name"

Optional Configuration

The gem has three modes of configuration: "both", "logging", and "metrics". The mode "both" turns on both parts of gem - logging and metrics. If you only need one, either logging or metrics, choose "logging" or "metrics" mode accordingly.

config.mode = :metrics

If you want to use a proxy for sending a request, you can configure it like this:

config.proxy = { uri: '', user: 'user_name', password: 'some_password' }

Log API Usage


The stackify-api-ruby runs when Rails server is started. Every error, which occurs within your application, will be caught and sent to Retrace automatically. It has the same process with logs - you simply use the Rails logger using the following code snippet: "Some log message"

If you want to redefine the logger, you should add the following

config.logger ='log', "#{Rails.env}.log")))

to your config/environments/%environment%.

In this case, Stackify#config.log_level will affect entire system.


Once you are done with logs configuration, you should wrap up your logger:

logger ='mylog.log')
logger =

And the last thing you need to do is to call the method "run": #remember that this call is running in the background of your main script

Metrics API Usage


Metrics requires Ruby APM to be enabled.

There are four different types of metrics:

  • Gauge: Keeps track of the last value that was set in the current minute
Stackify::Metrics.set_gauge "MyCategory", "MyGauge", 100
  • Counter: Calculates the rate per minute
Stackify::Metrics.count "MyCategory", "MyCounter"
  • Average: Calculates the average of all values in the current minute
Stackify::Metrics.average "MyCategory", "AverageSpeed", 200
  • Timer: Calculates the average elapsed time for an operation in the current minute
t =
Stackify::Metrics.time "MyCategory", "ElapsedTime", t
# or
Stackify::Metrics.time_duration "MyCategory", "ElapsedTime", 5.seconds
  • Counter and Timer: Composite of the Counter and Timer metrics for convenience
t =
Stackify::Metrics.count_and_time "Metric", "CounterWithTime", t<

We can configure every metric with settings:

settings =
settings.autoreport_zero_if_nothing_reported = true
# or
settings.autoreport_last_value_if_nothing_reported = true
Stackify::Metrics.set_gauge "MyCategory", "MyGauge", 100 , settings

The "autoreport_last_value_if_nothing_reported" property has influence only on "average" metric.


If there are problems, you can enable internal logging of the stackify-api-ruby project. You need to uncomment the config.logger and config.logger.level lines in the 'config/initializers/stackify.rb' file:

config.logger ="log", "stackify.log"))
config.logger.level = Logger::DEBUG

Was this article helpful?