There's no `def exception`, although there is an `exception` log function.
If you use the decator on `exception`, it doesn't work anymore, because `exception` just calls `error` internally, thus the decoding is done twice.
Try defining it, and running the unit tests, you'll get something like:

```
======================================================================
ERROR [0.002s]: test_uft8_decoding (test.fancylogger.FancyLoggerTest)
Test UTF8 decoding.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/kehoste/Work/ninja_workspace/vsc-base/test/fancylogger.py", line 105, in test_uft8_decoding
    logger.exception(non_utf8_msg)
  File "/home/kehoste/.local/lib/python2.7/site-packages/vsc_base-1.0-py2.7.egg/vsc/utils/fancylogger.py", line 218, in inner
    return func(self, new_msg, *args, **kwargs)
  File "/home/kehoste/.local/lib/python2.7/site-packages/vsc_base-1.0-py2.7.egg/vsc/utils/fancylogger.py", line 240, in exception
    super(FancyLogger, self).exception(msg, *args, **kwargs)
  File "/usr/lib64/python2.7/logging/__init__.py", line 1172, in exception
    self.error(msg, exc_info=1, *args)
  File "/home/kehoste/.local/lib/python2.7/site-packages/vsc_base-1.0-py2.7.egg/vsc/utils/fancylogger.py", line 217, in inner
    new_msg = msg.decode('utf8', 'replace')
  File "/usr/lib64/python2.7/encodings/utf_8.py", line 16, in decode
    return codecs.utf_8_decode(input, errors, True)
UnicodeEncodeError: 'ascii' codec can't encode character u'\ufffd' in position 25: ordinal not in range(128)

----------------------------------------------------------------------
```