Advertisement
Guest User

Untitled

a guest
Jun 26th, 2017
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 0.84 KB | None | 0 0
  1. $: << Dir.getwd
  2.  
  3. require 'logger'
  4. require 'loggable'
  5.  
  6. class Klass
  7.     include Loggable
  8.  
  9.     def initialize
  10.         @logger = nil
  11.  
  12.         self.logger = Logger.new($stdout)
  13.  
  14.         @logger.formatter = MyFmt.new
  15.     end
  16. end
  17.  
  18. class MyFmt
  19.     FORMAT = "%s, [%s] %s: %s\n"
  20.     PN_RE  = /in \`(.+)\'/
  21.  
  22.    def initialize
  23.    end
  24.  
  25.    public
  26.  
  27.    #          String, Time, String,   Object
  28.    def call(severity, time, progname, msg)
  29.        datetime = time.strftime("%m/%d %H:%M:%S")
  30.  
  31.        if severity == "DEBUG"
  32.            progname.gsub!(PN_RE, '\1')
  33.        else
  34.            progname = PN_RE.match(progname)[1] + '()'
  35.        end
  36.  
  37.        FORMAT % [severity[0][0], datetime, progname, msg]
  38.    end
  39.  
  40.    private
  41. end
  42.  
  43. if $0 == __FILE__
  44.    k = Klass.new
  45.  
  46.    k.log(:debug, 'debugging!')
  47.    k.log(:info, 'infoing!')
  48. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement