2014-12-29 1 views
11

나는 gunicorn으로 django 응용 프로그램을 실행 중이며, 나는 로그 메시지를 볼 수 없다. 여기 Django와 gunicorn에 로그인하기

로그를 기록하는 코드입니다

logger = logging.getLogger(__name__) 

def home_page(request): 
    logger.warning('in home page') 

(참고 :이 홈페이지로 연결되는보기 때문에이 코드는 확실히 실행)이 설정에서 내 로그 구성이

입니다 평 :

: 나는 다음과 같은 인수 데몬으로 gunicorn 실행

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

access.log 및 error.log가 모두 생성되어 gunicorn 메시지로 채워지지만 작성한 메시지를 볼 수 없습니다.

감사합니다.

답변

13

나는 내 문제를 해결했습니다. 세부 사항을 제공하면 비슷한 문제를 가진 사람을 도울 수 있습니다.

gunicorn 및 django 로그와 섞이지 않도록하고 django에 대해 별도의 로그 파일을 작성하기로 결정했습니다. 모든 메시지는 심각도 작성이 구성

LOGGING = { 
    'version': 1, 
    'disable_existing_loggers': False, 
    'handlers': { 
     'console': { 
      'level': 'DEBUG', 
      'class': 'logging.StreamHandler', 
     }, 
     'logfile': { 
      'level':'DEBUG', 
      'class':'logging.FileHandler', 
      'filename': BASE_DIR + "/../logfile", 
     }, 
    }, 
    'root': { 
     'level': 'INFO', 
     'handlers': ['console', 'logfile'] 
    }, 
} 

는> = INFO은 단지 소스 디렉토리의 외부에있는 파일 "로그 파일"로 기록됩니다.

+0

감사합니다. 나는 gunicorn과 함께 작동하는 기본적인 예제를 찾는 데 어려움을 겪고있었습니다. – mirth23

+0

stderr에도 쓰여지 죠? –

+1

기본적으로 stderr에 실제로 기록됩니다. 또한 다음과 같이 지정된 스트림과 다른 처리기를 추가해야 stdout에이를 기록하려면 : 'console_stdout': { '수준': 'DEBUG', '스트림'sys.stdout, '클래스': ' logging.StreamHandler ' } –