logging and daemons

  • Thread starter Fernando M. Maresca
  • Start date
F

Fernando M. Maresca

Hello.

I'm in the process of replacing a custom logger class in one of my apps
that has several daemons. In the last step of daemonizing a program,
after closing fds, stderr and stdout are redirected to the logfile of
the program.

Now, I'm trying to use TimedRotatingFileHandler as the only channel when
the programs run in daemon mode. My problem is: I can't see a goog way
to redirect stderr/stdout both to the logger.

Note that I don't have any print statements in any of my code, but I
can't be sure about all the modules I'm importing, and I like to get any
uncached exception info that may go to stderr/stdout to show up in the
logfiles.

Any ideas?
Thanks a lot,

--
Fernando

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEARECAAYFAkmZY84ACgkQCtDmpVXdEMbwLQCfewl3PUrGvT1tkywj3LExUBUd
SjsAn0pdBXgShSy/PV1V6is65HP0IWSC
=gG12
-----END PGP SIGNATURE-----
 
D

Diez B. Roggisch

Fernando said:
Hello.

I'm in the process of replacing a custom logger class in one of my apps
that has several daemons. In the last step of daemonizing a program,
after closing fds, stderr and stdout are redirected to the logfile of
the program.

Now, I'm trying to use TimedRotatingFileHandler as the only channel when
the programs run in daemon mode. My problem is: I can't see a goog way
to redirect stderr/stdout both to the logger.

Note that I don't have any print statements in any of my code, but I
can't be sure about all the modules I'm importing, and I like to get any
uncached exception info that may go to stderr/stdout to show up in the
logfiles.

why don't you just replace the sys.stdout/sys.stdin objects with
something that is file-like (supports a write-method, that should be
enough in this case), and then simply write the data arriving to the
logger instance of your trust.

If other modules don't get overly tricky to bypass sys.stdout, that
should capture all you output, regardless of the file descriptor issues.

In the end, if a 3rd-party-module choses to open a filedescriptor itself
& write to that, there is nothing you can do about that. But usually,
they don't behave that way.

Diez
 

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,982
Messages
2,570,186
Members
46,739
Latest member
Clint8040

Latest Threads

Top