2017-02-08 3 views
2

나는 Heroku에서 호스팅하고 Papertrail Heroku 애드온을 통해 Papertrail에 로그인하는 Django 응용 프로그램을 보유하고 있습니다.Django Heroku 앱에서 Papertrail에 정보를 기록하기 위해 print()를 사용하는 이점

logger = logging.getLogger('papertrail') 
logger.info('important text') 

내가 this link에 따라 로깅 구성을 설정 : 현재로 내가 직접 Papertrail에 정보를 기록하고있어 많은 장소가있다 함께,이과 같이 Papertrail에 기록

import sys 

LOGGING = { 
    'version': 1, 
    'disable_existing_loggers': False, 
    'handlers': { 
     'console': { 
      'level': 'INFO', 
      'class': 'logging.StreamHandler', 
      'stream': sys.stdout, 
     }, 
    }, 
    'loggers': { 
     'django': { 
      'handlers': ['console'], 
      'level': 'ERROR', 
     }, 
     'papertrail': { 
      'handlers': ['console'], 
      'level': 'INFO', 
     }, 
    }, 
} 

:

Feb 07 06:10:56 app_name app/worker.1: important text 

그러나 여기서는 print('important text')을 사용하는 것이 동일한 것을 수행한다는 것을 알았습니다. 이 상황에서 "중요 텍스트"를 기록하기 위해 loggingprint 이상 계속 사용하면 어떤 이점이 있습니까? 나는 this article을 통해 읽고 그것의 아무도는 여기에서 적용하는 것처럼 보지 않았다.

답변

2

나는 가끔 질문을하고, 보통 print은 디버깅에 유용하지만, 로깅은 다른 모든 것에 더 강력하다고 결론 내리고 있습니다.

예를 들어 로깅의 심각도를 나타내는 로그 수준이 있습니다. 또한 로깅을 사용하면 파일에 로그 및 출력, 오류 등을 기록 할 수 있습니다.

프로덕션 환경의 모든 응용 프로그램에는 이러한 이유로보다 포괄적 인 로깅 시스템이 있어야합니다.

이를 통해 읽기를 가지고 그것을 명확하게해야한다 : 당신이 대답하고 당신이 인용 한 기사에 의해 확신하지 않는 경우

https://docs.djangoproject.com/en/1.10/topics/logging/

, 좀 더 연구를 권 해드립니다. 그렇지 않으면 print을 계속 사용하고 결국에는 자신을 확신하게 될 것입니다.