Tony Cappellini wrote: >> You should be able to make the logging module work with you, it is very >> flexible. You should hook into the logging module. Write a custom >> handler that pushes log methods into your GUI. Add the handler to the >> root logger. > > The cmd line app already uses the logging module- this is where the > problem started. > > At the moment- due to the author's implementation, I can't pass in > anything to modify ho the logger gets initialized. I have been > thinking about asking him to let me pass in an instance of the logger > to his main(), once I understand how to get the output from the logger > into a string variable > > >> Right, but the stand-alone stuff can be wrapped with >> if __name__=='__main__': > > It already is. The cmd line app was written like this since day 1. > I am now importing it and calling his main() via the module import > import targetapp > > targetapp.main([arg1, arg2]) or whatever
You are still calling his code at too high a level. See if you can get him to write his main() something like this: def main(argv=sys.argv): options = parse_options(argv) configure_logging() do_the_work(options) or do_the_work(**options) or do_the_work(options[0], options[1]) or... where options is a list or dict or whatever kind of container makes sense to hold the options. Then your code does the initialization that makes sense for you - including hooking up the logging module to the GUI - and calls do_the_work(). > >> leaving the part you care about available for import in the same module. > >> The logging configuration should be in the main code as well, then when >> you import the module you can configure logging the way you want. > > I think the hooks for the logging need to be changed, so I can pass > them in or call them. > > Ok- now I will ask him to make his app a class That is not needed, he just needs to make it more fine-grained so it has a real API into the functional part that is distinct from the packaging as a command-line app. _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor