code: def write(self, logger=None, action=None):
          
          if logger is None:
              logger = _output._DEFAULT_LOGGER
          logged_dict = self._freeze(action=action)
          logger.write(logged_dict, self._serializer)
docs: Write the message to the given logger.
  
          This will additionally include a timestamp, the action context if any,
          and any other fields.
  
          Byte field names will be converted to Unicode.
  
          @type logger: L{eliot.ILogger} or C{None} indicating the default one.
  
          @param action: The L{Action} which is the context for this message. If
              C{None}, the L{Action} will be deduced from the current call
              stack.