1

これは時代遅れですか? http://guides.rubyonrails.org/debugging_rails_applications.html 私はそれを段階的にフォローしています。

そして、「2.1 ロガーとは?」

カスタムロガーの作成方法が記載されています。

1) environment.rb または任意の環境ファイルで代替ロガーを指定できます。

Rails.logger = Logger.new(STDOUT)
Rails.logger = Log4r::Logger.new("Application Log")

このコードを environment.rb ファイルに入れると、次のようになります。

初期化されていない定数 Log4r (NameError)

..次に、「または、初期化セクションで、次のいずれかを追加します。」

config.logger = Logger.new(STDOUT)
config.logger = Log4r::Logger.new("Application Log")

environment.rb ファイルに初期化セクションがありません! 同じエラーが発生します。

「必要に応じて、Log4r などの別のロガーを代用することもできます」と書かれています。なぜ誰かが既存のロガーを代用したいのでしょうか?

Rails.logger = Log4r::Logger.new("Application Log")environment.rb ファイルから削除しました。動作しているようですが、 log/ ディレクトリにファイルが作成されることを期待していましたが、何もありませんでした。これが私のenvironment.rbファイルです:

# Load the rails application
require File.expand_path('../application', __FILE__)

Rails.logger = Logger.new('Application Log')

# Initialize the rails application
MyApp::Application.initialize!

ヘルプ?説明をお願いします。

4

2 に答える 2

5

Railsロガーは次の方法でグローバルに設定できます。

Rails.logger = ...

または、環境ファイルに入れることができます。config/environments/development.rb

MyApp::Application.configure do
  config.logger = ...
end

Log4rは、Railsに付属していない別の宝石です。使用する場合は、Gemfileに追加します。

gem "log4r", "~> 1.1.10"

なぜ誰かが既存のロガーを置き換えたいのでしょうか?

ロガーには異なる機能セットがあるためです。カスタムロガーを使用して、ログを外部サービスにアップロードしたり、処理したりすることもできます。

于 2013-01-18T15:28:49.743 に答える