Guest User

Untitled

a guest
Jul 17th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.21 KB | None | 0 0
  1. # lib/my_plugin/logger.rb
  2.  
  3. module MyPlugin
  4. # A logging provider that mimics +Rails.logger+'s interface.
  5. #
  6. # The log level should be set in +config.yml+ in the root of the Rcopia
  7. # plugin. The log file will appear in the +RAILS_ROOT/log+ folder.
  8. class Logger
  9. include Singleton
  10.  
  11. attr_accessor :log
  12. attr_accessor :logfile
  13.  
  14. def initialize
  15. @logfile = File.open File.join(Rails.root, "log/myplugin.#{ Rails.env }.log"), 'a'
  16. @logfile.sync = true
  17.  
  18. @log = ::Logger.new(@logfile)
  19. @log.level = ::Logger.const_get(MyPlugin::Settings.log_level.upcase)
  20. end
  21.  
  22. # ERROR level log statement
  23. def self.error msg, fmt=nil
  24. log_message msg, :error, fmt
  25. end
  26.  
  27. # WARN level log statement
  28. def self.warn msg, fmt=nil
  29. log_message msg, :warn, fmt
  30. end
  31.  
  32. # INFO level log statement
  33. def self.info msg, fmt=nil
  34. log_message msg, :info, fmt
  35. end
  36.  
  37. # DEBUG level log statement
  38. def self.debug msg, fmt=nil
  39. log_message msg, :debug, fmt
  40. end
  41.  
  42. private
  43. # Display log message
  44. def self.log_message msg, lvl, fmt
  45. instance.log.send(lvl, "#{ lvl.to_s.upcase } #{msg}")
  46. if lvl == :debug
  47. instance.logfile.flush
  48. end
  49. end
  50. end
  51. end
Add Comment
Please, Sign In to add comment