Adds the logfile

The exit one has to define only for context classes one writes. It's already in the file class.

In the general case of file open/close, I think the main benefit is that the file close time is well-defined if one uses the "with" construct. If one forgets or just lazily lets the system close any open files, then one has no idea when it is actually closed.

As for explicit/implicit, I think the "with" construct is very explicit. It says "here a context begins". And when the code block ends, so does the context.

Especially since "with" is different from other languages (but is it? I thought Python stole this idea from somewhere else?), one will certainly notice what is going on.

But anyway, in the file open/close case it doesn't matter really. But the idiom is very useful.