On Nov 12, 2013, at 2:12 PM, Isaac Gerg <isaac.g...@gergltd.com> wrote:

> I launch my program with pythonw and begin it with the code below so that all 
> my print()'s go to the log file specified. 
> 
> if sys.executable.find('pythonw') >=0:
>        # Redirect all console output to file.
>        sys.stdout = open("pythonw - stdout stderr.log",'w')
>        sys.stderr = sys.stdout
> 
> During the course of my program, I call multiprocessing.Process() and launch 
> a function several times.  That function has print()'s inside (which are from 
> warnings being printed by python).  This printing causes the multiprocess to 
> crash.  How can I fix my code so that the print()'s are supressed. I would 
> hate to do a warnings.filterwarnings('ignore') because when I unit test those 
> functions, the warnings dont appear.
> 
> Thanks in advance,
> Isaac
> -- 
> https://mail.python.org/mailman/listinfo/python-list

This may be inelegant, but it solved a similar problem for me.  Replace the 
print statements with logging.info statements and have each invocation of the 
function dump to a unique log file (with a name based on the function's input). 
 At least in my case, multiprocessing seemed to get its feet tangled (crash) 
when different subprocesses tried to print to the same output file at the same 
time.

-Bill
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to