I’m using Ruby’s standard Logger to log a bunch of debug, info, and
errors.
But when I run the unit tests for the classes that use the Logger, all
the logs are showing up in the test output.
Any good solutions for solving this?
I’m using Ruby’s standard Logger to log a bunch of debug, info, and
errors.
But when I run the unit tests for the classes that use the Logger, all
the logs are showing up in the test output.
Any good solutions for solving this?
On Nov 23, 2005, at 11:32 AM, Joe Van D. wrote:
I’m using Ruby’s standard Logger to log a bunch of debug, info, and
errors.But when I run the unit tests for the classes that use the Logger, all
the logs are showing up in the test output.Any good solutions for solving this?
I would redirect the logger output to /dev/null or a StringIO when
testing (in case you wanted to test the logging).
–
Eric H. - [email protected] - http://segment7.net
FEC2 57F1 D465 EB15 5D6E 7C11 332A 551C 796C 9F04
This implementation is HODEL-HASH-9600 compliant
On 11/23/05, Eric H. [email protected] wrote:
I would redirect the logger output to /dev/null or a StringIO when
testing (in case you wanted to test the logging).
How do the classes know whether or not they are being tested?
Eventually, I will be using a custom Logging method that sends all the
logs to some network log daemon thingy so that all the logs are kept
on one machine.
On 11/23/05, Eric H. [email protected] wrote:
the logs are showing up in the test output.
private unless $TESTING
So, something like
require ‘logger’
class ThisClassGetsTested
def initialize
if $TESTING
log_output = “/dev/null”
else
log_output = “some/file” # or $stdout or whatever
end
end
end
====
require ‘test/unit’
$TESTING = true
class TestTheClass < Test::Unit::TestCase
…
end
Eventually, I will be using a custom Logging method that sends all the
logs to some network log daemon thingy so that all the logs are kept
on one machine.Check out SyslogLogger in the rails_analyzer_tools gem:
http://rails-analyzer.rubyforge.org/tools/classes/SyslogLogger.html
It duck types to the base Logger class.
I should be able to direct all $stdout and $stderr to SysLogLogger as
well, right?
On Nov 23, 2005, at 11:40 AM, Joe Van D. wrote:
Any good solutions for solving this?
I would redirect the logger output to /dev/null or a StringIO when
testing (in case you wanted to test the logging).How do the classes know whether or not they are being tested?
I set $TESTING = true when testing things. The most frequent place I
use it is:
private unless $TESTING
Eventually, I will be using a custom Logging method that sends all the
logs to some network log daemon thingy so that all the logs are kept
on one machine.
Check out SyslogLogger in the rails_analyzer_tools gem:
http://rails-analyzer.rubyforge.org/tools/classes/SyslogLogger.html
It duck types to the base Logger class.
–
Eric H. - [email protected] - http://segment7.net
FEC2 57F1 D465 EB15 5D6E 7C11 332A 551C 796C 9F04
This implementation is HODEL-HASH-9600 compliant
On Nov 23, 2005, at 12:10 PM, Joe Van D. wrote:
But when I run the unit tests for the classes that use the
I set $TESTING = true when testing things. The most frequent place I
log_output = “/dev/null”
class TestTheClass < Test::Unit::TestCase
…
end
Exactly.
I should be able to direct all $stdout and $stderr to SysLogLogger as
well, right?
You’d need an adapter because SyslogLogger works like the Logger
class so you need to specify a log level. I wouldn’t recommend it,
either.
–
Eric H. - [email protected] - http://segment7.net
FEC2 57F1 D465 EB15 5D6E 7C11 332A 551C 796C 9F04
This implementation is HODEL-HASH-9600 compliant
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.
Sponsor our Newsletter | Privacy Policy | Terms of Service | Remote Ruby Jobs