読者です 読者をやめる 読者になる 読者になる

Rails Webook

自社のECを開発している会社で働いています。Rails情報やサービスを成長させる方法を書いていきます

Railsの開発効率をあげる - rails-flogを使ってRailsのdevelopmentログのハッシュとSQLを見やすくする

開発を効率化する Rails gem

rails-flog とは

rails-flogとは、Railsの開発環境のログ(development.log)のハッシュとSQLのログをとっても見やすくするgemです。

rails-flog 導入前

Railsのデフォルトでは、HashやSQLは次のように表示されます。

# 一覧の取得
User Load (0.2ms)  SELECT "users".* FROM "users"

...

# User作成時のParameters
Processing by UsersController#create as HTML
  Parameters: {"utf8"=>"", "authenticity_token"=>"lVCNWWTI6D9tLoegdoodgJyv1brvoC2sS7WuQyFkT3w=", "user"=>{"firstname"=>"test", "lastname"=>"test", "email"=>"test@test.com"}, "commit"=>"Create User"}
rails-flog 導入後

rails-flogを使うとインデントがつけられ、階層構造がわかりやすく表示されます。

# 一覧の取得
User Load (0.2ms)
SELECT
  "users" . *
FROM
  "users"

...
# User作成時のParameters
Processing by UsersController#create as HTML
  Parameters:
{
                  "utf8" => "",
    "authenticity_token" => "lVCNWWTI6D9tLoegdfafdasS7Wuefjlajdfa",
                  "user" => {
        "firstname" => "test",
         "lastname" => "test",
            "email" => "test@test.com"
    },
                "commit" => "Create User"
}

動作確認

  • Rails 4.1
  • rails-flog 1.3.2

rails-flogのサポート環境

  • Ruby 1.9.3, 2.0.0, 2.1.0
  • Rails 3.2.x, 4.0.x, 4.1.x

目次


1. Railsプロジェクトの作成

まずはRailsプロジェクトを作成します。

rails new rails-flog_test
cd rails-flog_test

次にrails-flogの挙動を確認するために、UserをScaffoleで作成します。

rails g scaffold User firstname:string lastname:string email:string
rake db:migrate



2. rails-flogのインストール方法

では、rails-flogをインストールします。

GemfileにGemを追加します。

# Gemfile

group :development, :test do
  gem 'rails-flog', require: 'flog'
end

Bundlerを実行します。

bundle install

これで完了です。

では、rails sでサーバーを起動してログを見てみましょう。
SQLがインデントされて分かりやすく表示されています。

# 一覧の取得
User Load (0.2ms)
SELECT
  "users" . *
FROM
  "users"

...
# User作成時のParameters
Processing by UsersController#create as HTML
  Parameters:
{
                  "utf8" => "",
    "authenticity_token" => "lVCNWWTI6D9tLoegdfafdasS7Wuefjlajdfa",
                  "user" => {
        "firstname" => "test",
         "lastname" => "test",
            "email" => "test@test.com"
    },
                "commit" => "Create User"
}


3. rails-flogの一時的な無効化

Railsプロジェクトのルートのtmp/配下にファイルを配置するとrails-flogのフォーマットを無効化できます。

ファイル名 無効化する機能
no-flog-sql.txt SQL
no-flog-params.txt ハッシュ
no-flog.txt 両方



以上です。