Rails/ログ出力
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
&tag(Rails/ログ出力);
*目次 [#k298fad3]
#contents
*関連ページ [#d631d61e]
-[[Rails]]
*参考情報 [#p4b49ac9]
*ログローテーションする [#i6be3a41]
-外部コマンドの「logrotate」を使用する方法もある。
-production.rbを編集場合以下のように変更する。[[Railsのロ...
#サイズで分割(10MBごと)
config.logger = Logger.new("log/production.log", 5, 10 *...
config.logger = Logger.new(config.paths["log"].first, 5,...
#日別
config.logger = Logger.new("log/production.log", 'daily')
ちなみにconfig.paths["log"].firstは"log/production.rb"が...
*ログ出力のカスタマイズ [#da6c4e18]
**SQLログ出力を無効化する [#c8f128e8]
-2022/06/28(火)現在、Rails 6.1でSQLをログを無効化する方法。
# 以下の設定は効果なし(もとからnil?)
# ActiveRecord::Base.logger = nil
#以下の設定が効果あった
config.active_record.logger = nil
**developmentとproductionのログ出力の違い [#ic93300f]
-development環境ではActiveSupport::LoggerにデフォルトのSi...
-SimpleFormatterはタイムスタンプなど一切なしの文字列だけ...
-production環境ではproduction.rbでlog_formatterとしてRuby...
-これはタイムスタンプつきのもの。
-タスクなどでタイムスタンプつきで出力したい場合、::Logger...
**ログフォーマットのカスタマイズ [#c24223aa]
-development環境の標準のログ。
#pre{{
Started GET "/books" for 127.0.0.1 at 2019-01-23 17:50:05...
(0.5ms) SELECT "schema_migrations"."version" FROM "sc...
Processing by BooksController#index as HTML
Rendering books/index.html.erb within layouts/application
Book Load (0.2ms) SELECT "books".* FROM "books"
Rendered books/index.html.erb within layouts/applicatio...
Completed 200 OK in 291ms (Views: 276.9ms | ActiveRecord:...
}}
-以下のようにLoggerを設定するだけで以下のようになる。
#pre{{
I, [2019-01-23T17:52:25.168643 #90293] INFO -- : Started...
I, [2019-01-23T17:52:25.176907 #90293] INFO -- : Process...
I, [2019-01-23T17:52:25.194435 #90293] INFO -- : Rende...
D, [2019-01-23T17:52:25.197667 #90293] DEBUG -- : Book ...
I, [2019-01-23T17:52:25.199449 #90293] INFO -- : Rende...
I, [2019-01-23T17:52:25.498990 #90293] INFO -- : Complet...
}}
-Loggerを設定した場合「config.log_formatter」ではなく「co...
config.logger.formatter = MyFormatter.new
-formatterは以下のようにcallを定義するだけのクラスでよい...
#pre{{
class LoggerFormatWithTime
def call(severity, timestamp, progname, msg)
"[#{timestamp.strftime("%Y/%m/%d %H:%M:%S" )}] [#{sev...
end
end
config.logger = Logger.new(config.paths["log"].first, 5...
# config.log_formatter = LoggerFormatWithTime.new # これ...
config.logger.formatter = LoggerFormatWithTime.new #こ...
}}
**不要なログ出力を消す [#j334920a]
-以下のようなログがdevelopment環境で表示される。
#pre{{
127.0.0.1 - - [23/Jan/2019:22:16:58 JST] "GET /books HTTP...
- -> /books
}}
-Railsが出力しているものではなくWEBRickが出力しているログ...
--
-Pumaを使用するか(Gemfileにpumaを追加する)、以下のような...
#pre{{
# config/boot.rb
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', ...
require 'bundler/setup' # Set up gems listed in the Gemfi...
require 'rails/command'
require 'rails/commands/server/server_command'
# No stdout for logger
module Rails
class Server < ::Rack::Server
alias_method :orig_initialize, :initialize
def initialize(options)
# orig_initialize(options.merge(log_stdout: false, A...
# falseにすると完全に消えるのでtrueにするとなぜか不...
orig_initialize(options.merge(log_stdout: true, Acc...
end
end
end
}}
終了行:
&tag(Rails/ログ出力);
*目次 [#k298fad3]
#contents
*関連ページ [#d631d61e]
-[[Rails]]
*参考情報 [#p4b49ac9]
*ログローテーションする [#i6be3a41]
-外部コマンドの「logrotate」を使用する方法もある。
-production.rbを編集場合以下のように変更する。[[Railsのロ...
#サイズで分割(10MBごと)
config.logger = Logger.new("log/production.log", 5, 10 *...
config.logger = Logger.new(config.paths["log"].first, 5,...
#日別
config.logger = Logger.new("log/production.log", 'daily')
ちなみにconfig.paths["log"].firstは"log/production.rb"が...
*ログ出力のカスタマイズ [#da6c4e18]
**SQLログ出力を無効化する [#c8f128e8]
-2022/06/28(火)現在、Rails 6.1でSQLをログを無効化する方法。
# 以下の設定は効果なし(もとからnil?)
# ActiveRecord::Base.logger = nil
#以下の設定が効果あった
config.active_record.logger = nil
**developmentとproductionのログ出力の違い [#ic93300f]
-development環境ではActiveSupport::LoggerにデフォルトのSi...
-SimpleFormatterはタイムスタンプなど一切なしの文字列だけ...
-production環境ではproduction.rbでlog_formatterとしてRuby...
-これはタイムスタンプつきのもの。
-タスクなどでタイムスタンプつきで出力したい場合、::Logger...
**ログフォーマットのカスタマイズ [#c24223aa]
-development環境の標準のログ。
#pre{{
Started GET "/books" for 127.0.0.1 at 2019-01-23 17:50:05...
(0.5ms) SELECT "schema_migrations"."version" FROM "sc...
Processing by BooksController#index as HTML
Rendering books/index.html.erb within layouts/application
Book Load (0.2ms) SELECT "books".* FROM "books"
Rendered books/index.html.erb within layouts/applicatio...
Completed 200 OK in 291ms (Views: 276.9ms | ActiveRecord:...
}}
-以下のようにLoggerを設定するだけで以下のようになる。
#pre{{
I, [2019-01-23T17:52:25.168643 #90293] INFO -- : Started...
I, [2019-01-23T17:52:25.176907 #90293] INFO -- : Process...
I, [2019-01-23T17:52:25.194435 #90293] INFO -- : Rende...
D, [2019-01-23T17:52:25.197667 #90293] DEBUG -- : Book ...
I, [2019-01-23T17:52:25.199449 #90293] INFO -- : Rende...
I, [2019-01-23T17:52:25.498990 #90293] INFO -- : Complet...
}}
-Loggerを設定した場合「config.log_formatter」ではなく「co...
config.logger.formatter = MyFormatter.new
-formatterは以下のようにcallを定義するだけのクラスでよい...
#pre{{
class LoggerFormatWithTime
def call(severity, timestamp, progname, msg)
"[#{timestamp.strftime("%Y/%m/%d %H:%M:%S" )}] [#{sev...
end
end
config.logger = Logger.new(config.paths["log"].first, 5...
# config.log_formatter = LoggerFormatWithTime.new # これ...
config.logger.formatter = LoggerFormatWithTime.new #こ...
}}
**不要なログ出力を消す [#j334920a]
-以下のようなログがdevelopment環境で表示される。
#pre{{
127.0.0.1 - - [23/Jan/2019:22:16:58 JST] "GET /books HTTP...
- -> /books
}}
-Railsが出力しているものではなくWEBRickが出力しているログ...
--
-Pumaを使用するか(Gemfileにpumaを追加する)、以下のような...
#pre{{
# config/boot.rb
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', ...
require 'bundler/setup' # Set up gems listed in the Gemfi...
require 'rails/command'
require 'rails/commands/server/server_command'
# No stdout for logger
module Rails
class Server < ::Rack::Server
alias_method :orig_initialize, :initialize
def initialize(options)
# orig_initialize(options.merge(log_stdout: false, A...
# falseにすると完全に消えるのでtrueにするとなぜか不...
orig_initialize(options.merge(log_stdout: true, Acc...
end
end
end
}}
ページ名: