[ANN] Logging 0.9.0 (the "Monkeyful Chimptacular" release)

T

Tim Pease

logging version 0.9.0
by Tim Pease
http://logging.rubyforge.org/
(the "Monkeyful Chimptacular" release)

== DESCRIPTION

Logging is a flexible logging library for use in Ruby programs based
on the
design of Java's log4j library. It features a hierarchical logging
system,
custom level names, multiple output destinations per log event, custom
formatting, and more.

== CHANGES

2 minor enhancement
- Exceptions from appenders are captured and logged
- Internal logger for the Logging framework (disabled by default)
- Added a DSL configuration format (more readable than YAML)
1 bug fix
- Modules could not have their own logger instance


Blessings,
TwP
 
S

Shin guey Wong

Tim said:
logging version 0.9.0

Blessings,
TwP

require 'logging'

logger = Logging::Logger['example_logger']
logger.add_appenders(
Logging::Appender.stdout,
Logging::Appenders::File.new('example.log')
)
logger.level = :info

logger.debug "this debug message will not be output by the logger"
logger.info "just some friendly advice"

Base on the sample above, how do I configure different log level for 2
output. Eg I want the stdout to be :info level bug the logfile to be
:debug level. Is this possible?
 
J

Jens Wille

hi!

Shin guey Wong [2008-07-17 08:58]:
require 'logging'

logger = Logging::Logger['example_logger']
logger.add_appenders(
Logging::Appender.stdout,
Logging::Appenders::File.new('example.log')
)
logger.level = :info

logger.debug "this debug message will not be output by the logger"
logger.info "just some friendly advice"

Base on the sample above, how do I configure different log level for 2
output. Eg I want the stdout to be :info level bug the logfile to be
:debug level. Is this possible?
you can set the log level on the appender individually:

logger = Logging::Logger['example_logger']
logger.add_appenders(
Logging::Appenders::Stdout.new(nil, :level => :info),
Logging::Appenders::File.new('example.log')
)
logger.level = :debug

but note that you can only set *higher* thresholds on the appenders,
events below the log level of the superordinate logger instance
won't be passed through to the appenders, AFAIK. tim, please correct
me if i'm wrong ;-)

cheers
jens

--
Jens Wille, Dipl.-Bibl. (FH)
prometheus - Das verteilte digitale Bildarchiv für Forschung & Lehre
Kunsthistorisches Institut der Universität zu Köln
Albertus-Magnus-Platz, D-50923 Köln
Tel.: +49 (0)221 470-6668, E-Mail: (e-mail address removed)
http://www.prometheus-bildarchiv.de/
 
T

Tim Pease

hi!

Shin guey Wong [2008-07-17 08:58]:
require 'logging'

logger = Logging::Logger['example_logger']
logger.add_appenders(
Logging::Appender.stdout,
Logging::Appenders::File.new('example.log')
)
logger.level = :info

logger.debug "this debug message will not be output by the logger"
logger.info "just some friendly advice"

Base on the sample above, how do I configure different log level
for 2
output. Eg I want the stdout to be :info level bug the logfile to be
:debug level. Is this possible?
you can set the log level on the appender individually:

logger = Logging::Logger['example_logger']
logger.add_appenders(
Logging::Appenders::Stdout.new(nil, :level => :info),
Logging::Appenders::File.new('example.log')
)
logger.level = :debug

but note that you can only set *higher* thresholds on the appenders,
events below the log level of the superordinate logger instance
won't be passed through to the appenders, AFAIK. tim, please correct
me if i'm wrong ;-)

That is correct. If your logger level is set to 'error' then only
error and fatal log events will be propagated to the appenders.

But you can configure appenders individually to drop log events below
a certain threshold. For the example above ...


Logging::Appender['stdout'].level = :info
Logging::Appender['exmaple.log'].level = :debug

And you would need to set the logger level to :debug to see any
difference between the output of the two appenders.

logger.level = :debug


Just FYI -- you can access an Appender or Logger by name if they have
already been created:

Logging::Logger['example_logger'] #=> always returns the same
logger instance
Logging::Appender['stdout'] #=> always returns the stdout
appender if it has been created


Blessings,
TwP
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,767
Messages
2,569,572
Members
45,046
Latest member
Gavizuho

Latest Threads

Top