2010-09-23 8 views
2

Dans mes jours java j'utilisé pour configurer l'enregistreur afin que les différentes classes ont des niveaux différents à savoirdifférents niveaux de l'enregistreur pour les différentes classes

Person.logger.level = :debug 
Address.logger.level = :error 

Je n'ai pas été en mesure de trouver un moyen de le faire avec le rubis enregistreur Peut-être que je dois créer un enregistreur séparé pour chaque classe?

Répondre

2

vous pourriez avoir la chance avec une approche légère connue sous le nom de marquage du journal. L'inflexibilité des paquets de journalisation standard m'a conduit à développer et publier Tagalog, qui est un système de journalisation open-source à un seul fichier. Il existe des versions de la bibliothèque en PHP, Python et Ruby disponible sur github:

https://github.com/dorkitude/tagalog

ou, plus précisément pour la version Ruby:

https://github.com/dorkitude/tagalog.rb

Une façon simple à utiliser dans votre cas est:

class Person 
    def self.log(input): 
    return Tagalog::log(input, [:person, :debug]) 

# ... (rest of class) 

end 

Les avantages du marquage par-dessus les niveaux sont que vous pouvez activer et désactiver les étiquettes comme vous le souhaitez, et ils peuvent être spécifiques à certaines fonctionnalités, ou ils peuvent simplement être des niveaux comme vous en avez l'habitude.

+0

J'aime le marquage approcher beaucoup, va jeter un oeil. – opsb

+0

@opsb - une chance avec le marquage? Cela me fait économiser quelque chose comme 10% de mon temps de développement :) –

+0

ouais j'ai eu une pièce de théâtre, ça marche très bien. Je pense que cela fonctionnerait bien en tant que décorateur par rapport à l'enregistreur standard. De cette façon, vous pouvez vous connecter à n'importe quelle infrastructure de journalisation existante, mais avec la fonctionnalité de marquage supplémentaire. – opsb

Questions connexes