Prerequisites
- Create an Axiom account.
- Create a dataset in Axiom where you send your data.
- Create an API token in Axiom with permissions to update the dataset you have created.
- Install a Ruby version manager like
rbenv
and use it to install the latest Ruby version. - Install Ruby on Rails using the
gem install rails
command.
Set up the Ruby on Rails app
-
Create a new Rails app using the
rails new myapp
command. -
Navigate to the app directory:
cd myapp
Setting up the Gemfile
Open theGemfile
in your Rails app, and then add the following gems:
bundle install
.
Create and configure the Axiom logger
-
Create a new file named
axiom_logger.rb
in theapp/services
directory of your Rails app. -
Add the following code to
axiom_logger.rb
:
Replace
API_TOKEN
with the Axiom API token you have generated. For added security, store the API token in an environment variable.Replace DATASET_NAME
with the name of the Axiom dataset where you send your data.Replace AXIOM_DOMAIN
with api.axiom.co
if your organization uses the US region, and with api.eu.axiom.co
if your organization uses the EU region. For more information, see Regions.Test with the Axiom logger
-
Create a new file named
axiom_logger_test.rb
in theconfig/initializers
directory. -
Add the following code to
axiom_logger_test.rb
:
-
Info logs:
- Application started successfully
- User authentication successful
- Data fetched from external API
- Email notification sent
-
Warn logs:
- API request took longer than expected (including duration)
- User authentication token expiring soon (including user ID)
- Low disk space warning (including disk usage percentage)
- Non-critical configuration issue detected
-
Error logs:
- Database connection error (including error message)
- Failed to process payment (including user ID and error message)
- Unhandled exception occurred (including exception type)
- Third-party API returned an error (including status code)
-
Debug logs:
- Request parameters (including parameter values)
- Response headers (including header key-value pairs)
- User object details (including user attributes)
- Cache hit for key (including cache key)
Create the log.rake
tasks
- Create a new directory named
tasks
in thelib
directory of your Rails app. - Create a new file named
log.rake
in thelib/tasks
directory. - Add the following code to
log.rake
:
View logs in Axiom
-
Start your Rails server by running
rails server
. -
Go to
http://localhost:3000
to trigger the test log from the initializer. -
Run the Rake task to send another test log by executing
rails log:send_test_log
in your terminal. - In Axiom, go to the Stream tab, and then select the dataset where you send the logs.
- You see the test logs appear allowing you to view and analyze your event data coming from your Ruby on Rails app.