The global log object is now wrapped into a function, where it is
declared as static. In this case it will be always constructed, when
retrieved. 
If the log is opened/constructed in the main() and global objects would
use it, it will fail as they are constructed before main() is executed.
If the log object is not a pointer, but a normal object, the
construction order is still undefined.
make sure that iostream's global variables (like cout) are constructed
before first use
some cleanup
README updated