[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

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

Tim Pease

7/17/2008 1:24:00 AM

logging version 0.9.0
by Tim Pease
http://logging.ruby...
(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

3 Answers

Shin guey Wong

7/17/2008 6:59:00 AM

0

Tim Pease wrote:
> 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?
--
Posted via http://www.ruby-....

Jens Wille

7/17/2008 9:26:00 AM

0

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: jens.wille@uni-koeln.de
http://www.prometheus-bild...

Tim Pease

7/17/2008 2:36:00 PM

0


On Jul 17, 2008, at 3:26 AM, Jens Wille wrote:

> 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