質問

Railsをサポートできる真に統一されたロギングシステムがあるのではないかと思っていました ジョブが遅れ、セットアップが比較的簡単です。

現在、Railsコンテキストにいない場合でも、アプリケーションの実行コンテキスト(Rails、Delayed Jobsなど)について、同じサーバー/ファイルにログインできるようにしたいと考えています。

Rails Loggerが大好きですが、Resqueの仕事中にログにログインできません。何か案は?

役に立ちましたか?

解決

Syslogに似たファイルロガーのことですか?

ルビーは両方を持っています LoggerSyslog.

Loggerはログローリングを行い、重大度レベルを処理し、ロギング用の多くのRubyモジュールで使用できます。ファイルの名前を定義して、stdout/stderrまたはioストリームを使用するか、使用できます。

Syslogのドキュメントはかなり裸の骨ですが、ソースコードを閲覧するか、 Ruby syslog readme.

他のヒント

私は、レストランのジョブによって実行される宝石で起こっていることを記録する必要があります。 Railsデータベースに何が起こっているのかを記録するには、次のことを行います。

#in gem:
class Foo
  def self.logger
    @@logger ||= Logger.new(nil)
  end

  def self.logger=(logger)
    @@logger = logger
  end

  def self.logger_reset
    self.logger = Logger.new(nil)
  end

  def self.logger_write(obj_id, message, method = :info)
    self.logger.send(method, "|%s|%s|" % [obj_id, message])
  end
end

#in rails in initializers
Foo.logger = MyRailsLogger.new

#in in rails in lib or in model if it uses ActiveRecord
class MyRailsLogger
  def info
    ...
  end

  ...
end

このようにして、さまざまなプロセスで起こっていることを記録し、FooインスタンスのObject_idでログをフィルタリングするため、関連するデータのみが記録されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top