Question

Je me demandais s'il y a des systèmes d'exploitation forestière véritablement unifiée qui il peut soutenir Rails et emplois retardés, et sont relativement faciles à mettre en place.

Je veux être en mesure de se connecter au même serveur / fichier pour tout contexte d'exécution dans mon application (Rails, emplois retardés, etc.), même si je ne suis pas actuellement dans un contexte Rails.

Love l'enregistreur Rails, mais je ne peux pas vous connecter à elle alors que dans un emploi Resque. Des idées?

Était-ce utile?

La solution

Voulez-vous dire un fichier-enregistreur, similaire à syslog?

Ruby a la fois Logger et Syslog .

Logger peut faire rouler journal, poignées niveaux de gravité, et est utilisé dans un grand nombre de modules Ruby pour l'exploitation forestière. Vous pouvez définir le nom du fichier pour ouvrir une session, ou utiliser STDOUT / STDERR ou un flux IO.

Les documents pour syslog sont jolies barebones, mais vous pouvez obtenir des informations en naviguant sur son code source, ou lire la Ruby syslog README .

Autres conseils

Je dois connecter les choses qui se passent dans un petit bijou qui fonctionne par un travail resque. Pour vous connecter ce qui se passe à la base de données Rails, je fais ce qui suit:

#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

De cette façon, je peux connecter les choses qui se passent dans différents processus et aussi les journaux de filtre par object_id de l'instance Foo, alors que les données pertinentes se connecté.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top