Ok, I finally figured out what that log message that was bothering me was.  So if I try to pass an invalid log message, I somehow always end up with an error like this in the logs:

    {
      "facility": "otter.supervisor.validate_launch_config", 
      "full_message": "I n v a l i d   p e r s o n a l i t y   \" [ { u ' p a t h ' :   u ' / e t c / b a n n e r . t x t ' ,   u ' c o n t e n t s ' :   u ' ( ) ( ) ( ) ' } ] \"   i n   l a u n c h C o n f i g u r a t i o n", 
      "message_formatting_error": "[Failure instance: Traceback: <type 'exceptions.KeyError'>: \"u'path'\"\n/opt/otter/current/lib/python2.7/site-packages/twisted/internet/defer.py:575:_runCallbacks\n/mnt/hgfs/otter/otter/worker/validate_config.py:155:raise_validation_error\n/opt/otter/current/lib/python2.7/site-packages/twisted/python/threadable.py:53:sync\n/opt/otter/current/lib/python2.7/site-packages/twisted/python/log.py:191:msg\n--- <exception caught here> ---\n/mnt/hgfs/otter/otter/log/formatters.py:113:PEP3101FormattingObserver\n]", 
      "reason": "[Failure instance: Traceback (failure with no frames): <class 'otter.worker.validate_config.InvalidBase64Encoding'>: Invalid base64 encoding for contents of path \"/etc/banner.txt\"\n]", 
      "short_message": "I", 
      ....
    }

It's because prop_value is a dictionary, and when it gets formatted in, the format string has a bunch of `{` and `}` in it, which messes with the pep3101 formatter.

If there is something that might be or have a dictionary that gets formatted into the message, we should probably add it as a keyword argument to the log command from now on.  Doing:

        msg = ('Invalid {launch_config_property} "{launch_config_value}" '
               'in launchConfiguration')
        log.msg(msg, reason=failure, launch_config_property=prop_name,
                launch_config_value=shorten(str(prop_value), 128))

fixed it for me.  I'm not committed to this particular snippet, but this seems to be the general form of the solution.  :)