def log(logger, messages, title=False, boxed=False, loglevel='info', silent=False): """ Print a message on stdout and log to file :param logger: Logger object to use for the logging :type logger: ovs.log.log_handler.LogHandler :param messages: Messages to print and log :type messages: str or list :param title: If True some extra chars will be pre- and appended :type title: bool :param boxed: Use the Interactive boxed message print option :type boxed: bool :param loglevel: level to log on :type loglevel: str :param silent: If set to True, the messages will only be logged to file :type silent: bool :return: None """ if type(messages) in (str, basestring, unicode): messages = [messages] if silent is False: if boxed is True: print Interactive.boxed_message(lines=messages) else: for message in messages: if title is True: message = '\n+++ {0} +++\n'.format(message) if loglevel in ['error', 'exception']: message = 'ERROR: {0}'.format(message) print message for message in messages: getattr(logger, loglevel)(message)