2

これに対する適切なアプローチは何ですか:レールの有無にかかわらず使用できるgemがあります.レール内で使用する場合は、構成されたロガーなどのレールサービスを再利用したいと思います. Rails の外部 (sinatra アプリ内など) にある場合は、stdlib から Logger にフォールバックしたいと思います。

私は次のようなアプローチを試みました:

@logger = defined?("Rails") ? eval("Rails.logger") : Logger.new(STDOUT)

しかし、これは「初期化されていない定数」しか与えません...

4

1 に答える 1

3

とても近い!引用符/評価を削除します。

@logger = defined?(Rails) ? Rails.logger : Logger.new(STDOUT)

Loggerまた、ユーザーが互換性のあるログ シンクを指定できる構成フックを提供することをお勧めします。デフォルトは便利ですが、設定が必要な場合もあります。

于 2013-03-07T16:28:36.890 に答える