Was ist der beste/einfachste Weg, die Protokollierung für Code im Verzeichnis lib zu konfigurieren?Rails: Logging für Code im Verzeichnis lib?
Antwort
Es gibt zwei Möglichkeiten, darüber zu gehen:
Ihrer Bibliothek ist in sich geschlossen Unter der Annahme, und ein Modul verfügt, können Sie ein
logger
Attribut zu Ihrem Modul hinzufügen und verwenden, die überall in der Bibliothekscode.Sie dann entweder einen Initialisierer in
config/initializers/
verwenden oder einenconfig.after_initialize
Block inconfig/environment.rb
Logger initialisiert werden, etwa so:require 'mylibrary' MyLibrary.logger = Rails.logger
Dies würde immer noch erlauben Sie sich geschlossene Bibliothek von Skripten verwenden außerhalb Schienen. Was ist nett, gelegentlich.
Wenn die Verwendung Ihrer Bibliothek ohne Rails überhaupt keinen Sinn ergibt, können Sie auch einfach
Rails.logger
direkt verwenden.
In beiden Fällen handelt es sich um einen standardmäßigen Ruby Logger. Bedenken Sie auch, dass der Logger theoretisch nil
sein kann.
Wir können Rails Logger direkt in die lib verwenden, siehe das folgende Snippet.
require 'logger'
Rails.logger.info "Hay..!!! Im in lib"
Rails.logger.debug "Debugging this object from Lib #{object.inspect}"
Rails.logger.error "This is an error..."
Dies funktionierte für mich schließlich, nachdem ich erkannte, dass ich Logger brauchte. Es ist völlig offensichtlich, sobald du es weißt, aber für eine Weile war es für mich nicht offensichtlich. –
- 1. Rails: Wie Code im Verzeichnis lib/zu testen?
- 2. Rails: Autoload-Dateien in Engine Lib-Verzeichnis
- 3. Logging in Ruby on Rails im Produktionsmodus
- 4. Rails lib enthält
- 5. Wie lib-Verzeichnis für Ant-Task angeben?
- 6. Controlled Logging für Apache-commons-net lib (Java)
- 7. Rails-Engines: Wann Code in App, wann in Lib und wann im Lieferantenordner?
- 8. Rails Logging API
- 9. Rails/lib-Module und
- 10. Wo testet rspec Code unter lib/go?
- 11. Speicherdatei im Verzeichnis tmp auf Heroku Rails
- 12. Rails 5 Ignorieren/Lib-Klasse?
- 13. ld: Warnung: Verzeichnis für Option nicht gefunden: -LC_ID_DYLIB =/usr/lib
- 14. Wie finde ich "mein" lib Verzeichnis?
- 15. Wie lib-Verzeichnis in rspec Tests enthalten
- 16. Bedeutung von lib-Verzeichnis in Github-Repositories
- 17. Rails Lib-Dateien geladen werden Fehler
- 18. Logging mit SL4J, Jakarta Commons Logging, log4j für Third Party Libraries und meinen eigenen Code
- 19. Code Coverage für statische Bibliothek (.lib) Visual Studio
- 20. Rails-Anwendung auf Pow läuft nicht für Änderungen in/lib
- 21. Logging Framework für iOS?
- 22. Logging für Supervisord
- 23. Logging API für AS3
- 24. Leistungstricks für C# Logging
- 25. Python, wählen Sie das Verzeichnis der Logging-Dateien
- 26. ant's java task kann kein jar im jre/lib/ext-verzeichnis finden
- 27. Logging-Frameworks für Embedded Linux?
- 28. RPC lib für Python
- 29. SCORM lib für php
- 30. Wildfly Reihenfolge der Classloading für Gläser im Ohr/lib
Vielen Dank, das ist genau das, was ich gesucht habe. – drt
NB: Diese Antwort enthält falsche Informationen und Redakteure wollen nicht, dass ich sie behebe. Wenn Sie (vielleicht) nicht Rails älter als 2.0 verwenden, befassen Sie sich NICHT mit einem Standard-Ruby-Logger. Rails verwendet jetzt [ActiveSupport :: BufferedLogger] (http://apidock.com/rails/ActiveSupport/BufferedLogger). Wenn Sie sich entscheiden, einen separaten Logger für z. B. einen Cron-Job zu instanziieren, der in einem Rails-Projekt enthalten ist, um das Standard-Rails-Protokoll nicht zu "verschmutzen". Stellen Sie in diesem Fall sicher, dass Sie 'ActiveSupport :: BufferedLogger.new' anstelle von' Logger.new' verwenden. Ich habe es versucht und es hat nicht funktioniert. – Lambart