Skip to content

kzk/td-logger

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Treasure Data logging library for Rails

Getting Started

Add the following line to your Gemfile:

gem 'td-logger'

For Rails 2.x (not tested) without Bundler, edit environment.rb and add to the initalizer block:

config.gem "td-logger"

And then add config/treasure_data.yml file as following:

# logging to Treasure Data directly
development:
  apikey: "YOUR_API_KEY"
  database: myapp
  access_log_table: access
  auto_create_table: true

# logging via td-agent
production:
  agent: "localhost:24224"
  tag: td.myapp
  access_log_table: access

# disable logging
test:

Logging access logs

Following information will be logged automatically:

  • controller name (‘controller’ column)

  • action name (‘action’ column)

  • remote host ip address (‘remote_addr’ column)

  • http status code (‘status’ column)

  • http referer (‘refer’ column)

To add information to the log, call ‘td_access_log’ method in a Controller:

class YourController < ApplicationController
  def myaction
    td_access_log[:column] = "value"
  end
end

Or call ‘TreasureData.access_log’ method outside of a Controller:

class MyHelperModule
  def mymethod
    TreasureData.access_log[:column] = "value"
  end
end

Logging model changes

Add ‘td_enable_model_tracer’ line to your Model class:

class MyModel < ActiveRecord::Base
  td_enable_model_tracer :mytable
end

It logs all columns when the model is changed. Use :only option to limit columns to log:

class MyModel < ActiveRecord::Base
  td_enable_model_tracer :mytable, :only => [:id, :mycol]
end

Alternatively, use :except option to except columns to log:

class MyModel < ActiveRecord::Base
  td_enable_model_tracer :mytable, :except => [:created_at]
end

Add ‘static’ option to add constant key-value pairs:

class MyModel < ActiveRecord::Base
  td_enable_model_tracer :mytable, :except => [:created_at], :static => {'model'=>'my'}
end

Logging other logs

You can log anytime using ‘TreasureData.log’ method:

class MyClass
  def mymethod
    TreasureData.log('mytable', {:col1=>"val1", :col2=>"val2"}
  end
end
Copyright

Copyright © 2011 Treasure Data Inc.

License

Apache License, Version 2.0

About

logging library for Rails

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Ruby 100.0%