Make the fields included in messages configureable

I wanted 'lineno', 'funcName' in my log messages not only on exceptions, but always, so I added a parameter `default_fields` and `exc_fields` to be able to set the fields used in the logger configuration and rewrote a few things.