El S=E1bado, 2 de Enero de 2010, Tim Pease escribi=F3:
> On Jan 2, 2010, at 2:37 PM, I=F1aki Baz Castillo wrote:
> > Hi, is it possible to redirect $stderr to any available logger instance
> > (as Logger, SyslogLogger, Logging)?
> >
> > I think it cannot be done, since current Loggers can log to $stderr so =
we
> > would get some kind of "loop" XD
>=20
> $stderr is a file descriptor. You can reopen the descriptor to any other
>  valid descriptor: file, socket, pipe, unix socket, etc.
>=20
> For any of the loggers you mentioned above, get a hold of the internal
>  descriptor the logger is using and then ....
>=20
> new_fd =3D logger.get_logger_file_descriptor
> $stderr.reopen new_fd

Thanks. The problem is that Syslog is a daemon rather than a file descripto=
r.=20
This is: Syslog is a daemon which receives messages from syslog clients and=
=20
log them to files or databases.

However I was able to use Syslog as $stderr as follows (thanks to Eric):


  require 'syslog_logger'  # Logger/Syslog converter

  class MySyslogLogger < SyslogLogger
    alias puts error
    alias write error
    def flush; self; end
  end

  $stderr =3D MySyslogLogger.new('foo')



=2D-=20
I=F1aki Baz Castillo <ibc / aliax.net>