Beispiel #1
0
def _setup_logging(args):
    level = -args.verbose_count * 10
    fmt = "%(asctime)s:%(levelname)s:%(name)s:%(message)s"
    if args.text_mode:
        handler = colored_logging.StreamHandler()
        handler.setFormatter(logging.Formatter(fmt))
    else:
        handler = log.DialogHandler()
        # dialog box is small, display as less as possible
        handler.setFormatter(logging.Formatter("%(message)s"))
    handler.setLevel(level)

    # TODO: use fileConfig?

    # unconditionally log to file for debugging purposes
    # TODO: change before release?
    log_file_name = os.path.join(args.logs_dir, 'letsencrypt.log')
    file_handler = logging.handlers.RotatingFileHandler(
        log_file_name, maxBytes=2 ** 20, backupCount=10)
    # rotate on each invocation, rollover only possible when maxBytes
    # is nonzero and backupCount is nonzero, so we set maxBytes as big
    # as possible not to overrun in single CLI invocation (1MB).
    file_handler.doRollover()  # TODO: creates empty letsencrypt.log.1 file
    file_handler.setLevel(logging.DEBUG)
    file_handler_formatter = logging.Formatter(fmt=fmt)
    file_handler_formatter.converter = time.gmtime  # don't use localtime
    file_handler.setFormatter(file_handler_formatter)

    root_logger = logging.getLogger()
    root_logger.setLevel(logging.DEBUG)  # send all records to handlers
    root_logger.addHandler(handler)
    root_logger.addHandler(file_handler)

    logger.debug("Root logging level set at %d", level)
    logger.info("Saving debug log to %s", log_file_name)
Beispiel #2
0
def _cli_log_handler(args, level, fmt):
    if args.text_mode:
        handler = colored_logging.StreamHandler()
        handler.setFormatter(logging.Formatter(fmt))
    else:
        handler = log.DialogHandler()
        # dialog box is small, display as less as possible
        handler.setFormatter(logging.Formatter("%(message)s"))
    handler.setLevel(level)
    return handler
Beispiel #3
0
def _cli_log_handler(config, level, fmt):
    if config.text_mode or config.noninteractive_mode or config.verb == "renew":
        handler = colored_logging.StreamHandler()
        handler.setFormatter(logging.Formatter(fmt))
    else:
        handler = log.DialogHandler()
        # dialog box is small, display as less as possible
        handler.setFormatter(logging.Formatter("%(message)s"))
    handler.setLevel(level)
    return handler
Beispiel #4
0
    def setUp(self):
        from letsencrypt import colored_logging

        self.stream = six.StringIO()
        self.stream.isatty = lambda: True
        self.handler = colored_logging.StreamHandler(self.stream)

        self.logger = logging.getLogger()
        self.logger.setLevel(logging.DEBUG)
        self.logger.addHandler(self.handler)
Beispiel #5
0
def _cli_log_handler(args, level, fmt):  # pylint: disable=unused-argument
    handler = colored_logging.StreamHandler()
    handler.setFormatter(logging.Formatter(fmt))
    return handler