Example #1
0
def setup_stackdriver(log_level, name, log_format, excluded_loggers=None):
    try:
        from google.cloud.logging import Client
        from google.cloud.logging import handlers as google_logging_handlers
        from google.cloud.logging.handlers.handlers import \
            EXCLUDED_LOGGER_DEFAULTS, \
            CloudLoggingHandler
    except ImportError:
        raise ValueError("google-cloud-logging is not properly installed")

    if not excluded_loggers:
        excluded_loggers = EXCLUDED_LOGGER_DEFAULTS
    client = Client()

    # the docstring of CloudLoggingHandler point to client instead of Client
    # noinspection PyTypeChecker
    handler = CloudLoggingHandler(client, name)
    handler.setFormatter(logging.Formatter(log_format, None, "%"))

    google_logging_handlers.setup_logging(handler,
                                          log_level=log_level,
                                          excluded_loggers=excluded_loggers)
Example #2
0
    worker_id = ''.join(random.choice(string.ascii_letters) for _ in range(10))

    import google.cloud.logging
    from google.cloud.logging.handlers.handlers import CloudLoggingHandler, EXCLUDED_LOGGER_DEFAULTS
    google_logging_client = google.cloud.logging.Client()

    stdout_handler = logging.StreamHandler(sys.stdout)
    stdout_handler.setFormatter(
        Formatter(
            f'%(asctime)s {worker_id} [%(name)s:%(lineno)-3d] %(levelname)-7s: %(message)s'
        ))

    google_handler = CloudLoggingHandler(google_logging_client)
    google_handler.setFormatter(
        Formatter(
            f'{worker_id} [%(name)s:%(lineno)-3d] %(levelname)-7s: %(message)s'
        ))

    root_logger = logging.getLogger()
    root_logger.setLevel(logging.INFO)
    root_logger.addHandler(stdout_handler)
    root_logger.addHandler(google_handler)

    for logger_name in EXCLUDED_LOGGER_DEFAULTS:
        logger = logging.getLogger(logger_name)
        logger.propagate = False
        logger.addHandler(stdout_handler)

    os.environ.get('RABBITMQ_HOST', 'localhost')

    GCE_PROJECT = os.environ.get('GCE_PROJECT')