Hey all, How would I go about sharing a reassignment of excepthook, where that assignment is made to a central function and could come from any of several files?
I'm replacing a bunch of SQL jobs at work, and my boss said he doesn't care which language I use. Naturally, Python it is. :) All these jobs do different things, and run at different times and different intervals. Some update files on our FTP server, some email the previous day's shipping errors, some back up databases, and so on. The setup I'm going to try first is one file per job, with utils.py and a couple others shared between them all. That way, any job that needs to email can just import emailer and every job can access configuration data: import utils utils.config["emails"]["alexHall"] One thing that utils.py provides is logging: import utils logger = utils.ADLogger("Job Name") The ADLogger object sets the level, the file name, the formatter, and so on. It also has a function: logException(self, type, value, traceback). This simply logs the exception, since ADLogger is a subclass of logging.Logger. Finally, my question. Say job1 and job2 run within a minute of each other, but job1 takes a while to execute. Both jobs set their excepthook functions: logger = utils.ADLogger("job1") excepthook = logger.logException logger = ADLogger("Job 2") excepthook = logger.logExceptions Now, Python is running two scripts which each have their excepthook set to something different. What happens when both try to log an exception, or even if one tries to while the other is running? Will this work how I hope, or will there be confusion? Should I thread it somehow? I'd rather not have a central manager, as that's one more thing that might fail; I plan to set all the scripts up in Windows Task Scheduler. I can have a Python-based manager if I need to, but it'd take me a while to finish that (I started something similar months back and would have to finish and modify it). Am I worrying over nothing, or will I need to do something to make sure each job logs exceptions, and does it correctly, no matter who else is running at the same time? Thanks. -- Alex Hall Automatic Distributors, IT department ah...@autodist.com _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor