Cloud Run에 배포된 Django의 Google Cloud 로그 심각도

Django/python 애플리케이션을 Google Run에 배포할 때 콘솔로 전송된 로그는 Google's Ops agent에서 자동으로 선택됩니다(Fluent Bit 기준).



유일한 문제는 Pythonlogging 라이브러리를 사용하는 경우 로그 심각도가 자동으로 선택되지 않는다는 것입니다.

다음과 같이 로그인하는 경우에도:

logging.warn('This should have WARNING level');


Google의 로그 탐색기의 로그는 모두 수준default으로 나타납니다.

이 문제를 해결하려면 Django/python의 LOGGING 설정을 구성하여 CloudLoggingHandler 사용해야 합니다.

LOGGING = {
    'handlers':
        'console': {
            'level': get_env('LOG_LEVEL', 'WARNING'),
            'class': 'logging.StreamHandler'
        }
    },
    'root': {
        'handlers': ['console'],
        'level': get_env('LOG_LEVEL', 'WARNING'),
    }
}

// When running in an environemnt without gcloud auth credentials
if get_env('GOOGLE_LOGGING_ENABLED', False):
    try:
        import google.cloud.logging
        from google.auth.exceptions import GoogleAuthError

        client = google.cloud.logging.Client()
        client.setup_logging()

        LOGGING['handlers']['google_cloud_logging'] = {
            'level': get_env('LOG_LEVEL', 'WARNING'),
            'class': 'google.cloud.logging.handlers.CloudLoggingHandler',
            'client': client
        }

        LOGGING['root']['handlers'].append('google_cloud_logging')

    except GoogleAuthError as e:
        logger.exception('Google Cloud Logging handler could not be setup.')


이제 심각도 메타데이터를 성공적으로 구문 분석하여 경보 및 지표 대시보드를 생성합니다.

좋은 웹페이지 즐겨찾기