redirecting stdout and stderr for a windows service
ian at ianhobson.co.uk
Mon Sep 6 16:29:44 CEST 2010
I am trying to redirect stdout and stderr on a python windows service,
so that the service will not stall after 256 chars is written, and so I
can use print for simple debugging.
I have the following 4 lines (copy/pasted) in the source of my code.
if __name__ == '__main__':
sys.stdout = sys.stderr = open("d:\logfile.txt", "a")
print "Starting up"
When I run them as a free standing program, logfile.txt is created
the text placed in it, and it crashed on the last line - no permissions
to create a service. (Micro-cluless has no sudo command in Win7. :( )
When I start the code as a service, it does not create the log file
does not put anything in it, but the last line is executed and the
service starts! There are no Events on the event log.
When I stop the service, it stops. Still no log file. Still no events.
I tried running the service with my account and not the system user.
This gave me "run as service" permissions, but did not alter the results.
What is happening?
And how can I set up logging so that the service can simply restart,
leaving the trackback in the log file for me to come to later.
All help gratefully received. I've lost most of my remaining hair today
on this one.
More information about the Python-list