Sha256: 0d96fc543fdd9dd5daef4466904fc84f8eb997f813908f57db6ccdd1bfd63e67

Contents?: true

Size: 1.09 KB

Versions: 90

Compression:

Stored size: 1.09 KB

Contents

# :stopdoc:
#
# The Logging framework is very good about figuring out predictable names
# for loggers regardless of what object is used to create them. The name is
# the class name or module name of whatever is passed to the logger bracket
# method. The following lines all return the exact same logger instance:
#
#    ary = Array.new
#    Logging.logger[ary]
#    Logging.logger[Array]
#    Logging.logger['Array']
#    Logging.logger[:Array]
#
# So, if you want each class to have it's own logger this is very easy to
# do.
#

  require 'logging'

  Logging.logger.root.appenders = Logging.appenders.stdout
  Logging.logger.root.level = :info

  class Foo
    attr_reader :log
    def initialize() @log = Logging.logger[self]; end
  end

  class Foo::Bar
    attr_reader :log
    def initialize() @log = Logging.logger[self]; end
  end

  foo = Foo.new.log
  bar = Foo::Bar.new.log

  # you'll notice in these log messages that the logger names were taken
  # from the class names of the Foo and Foo::Bar instances
  foo.info 'this message came from Foo'
  bar.warn 'this is a warning from Foo::Bar'

# :startdoc:

Version data entries

90 entries across 82 versions & 10 rubygems

Version Path
logging-2.4.0 examples/classes.rb
logging-2.3.1 examples/classes.rb
vagrant-unbundled-2.2.19.0 vendor/bundle/ruby/3.0.0/gems/logging-2.3.0/examples/classes.rb
vagrant-unbundled-2.2.18.0 vendor/bundle/ruby/3.0.0/gems/logging-2.3.0/examples/classes.rb
vagrant-unbundled-2.2.16.0 vendor/bundle/ruby/3.0.0/gems/logging-2.3.0/examples/classes.rb
vagrant-unbundled-2.2.16.0 vendor/bundle/ruby/2.7.0/gems/logging-2.3.0/examples/classes.rb
vagrant-unbundled-2.2.14.0 vendor/bundle/ruby/2.7.0/gems/logging-2.3.0/examples/classes.rb
vagrant-unbundled-2.2.10.0 vendor/bundle/ruby/2.7.0/gems/logging-2.3.0/examples/classes.rb
logging-2.3.0 examples/classes.rb
vagrant-unbundled-2.2.9.0 vendor/bundle/ruby/2.7.0/gems/logging-2.2.2/examples/classes.rb
vagrant-unbundled-2.2.8.0 vendor/bundle/ruby/2.7.0/gems/logging-2.2.2/examples/classes.rb
vagrant-unbundled-2.2.7.0 vendor/bundle/ruby/2.6.0/gems/logging-2.2.2/examples/classes.rb
vagrant-unbundled-2.2.7.0 vendor/bundle/ruby/2.4.0/gems/logging-2.2.2/examples/classes.rb
vagrant-unbundled-2.2.7.0 vendor/bundle/ruby/2.7.0/gems/logging-2.2.2/examples/classes.rb
vagrant-unbundled-2.2.6.2 vendor/bundle/ruby/2.6.0/gems/logging-2.2.2/examples/classes.rb
vagrant-unbundled-2.2.6.1 vendor/bundle/ruby/2.6.0/gems/logging-2.2.2/examples/classes.rb
vagrant-unbundled-2.2.6.0 vendor/bundle/ruby/2.6.0/gems/logging-2.2.2/examples/classes.rb
vagrant-unbundled-2.2.5.0 vendor/bundle/ruby/2.6.0/gems/logging-2.2.2/examples/classes.rb
vagrant-unbundled-2.2.5.0 vendor/bundle/ruby/2.5.0/gems/logging-2.2.2/examples/classes.rb
vagrant-unbundled-2.2.4.0 vendor/bundle/ruby/2.5.0/gems/logging-2.2.2/examples/classes.rb