리눅스 서버에 Django 앱이 있습니다. 보기 중 하나에서 어떤 형식의 print
명령이 실행되고 일부 문자열이 인쇄됩니다. 인쇄 된 문자열이 무엇인지 어떻게 알 수 있습니까? 이런 것들이 보관되어있는 로그가 있습니까?Django 앱에서 인쇄 할 때 어디로 이동합니까?
답변
출력은 django가 시작된 터미널에 있어야합니다. (직접 시작하지 않으면 읽을 방법이 없다고 생각합니다.)
링크 된 링크가 지적되었으므로 print
을 사용하지 않는 것이 좋습니다. 예외가 발생할 수 있습니다. 그러나 이것이 유일한 이유는 아닙니다 : 이러한 목적으로 만들어진 모듈 (예 : logging)이 있으며 훨씬 더 많은 옵션이 있습니다.
This site (이것은 2008 년의 경우에도) 내 문을 확인 :
을 당신이보기 내부에서 무슨 일이 일어나고 있는지 알고 싶다면, 가장 빠른 방법은 인쇄 문에 드롭하는 것입니다. 개발 서버은 인쇄 문을 터미널에 직접 출력합니다. JavaScript 경고()에 대한 서버 측 대안입니다.
로깅을 사용하면 더 세련된이되고 싶다면 파이썬의 로깅 모듈 (표준 라이브러리의 일부)을 사용하는 것이 좋습니다. 당신은 당신의 settings.py에서 구성 할 수 있습니다 : 여기에 그는 설명합니다, 당신은 또한 debug-mode를 사용하거나 django-debug-toolbar를 사용할 수 디버깅-목적을 위해 (사이트의 모양)
을 할 것.
희망이 있습니다. :)
인쇄물은 "./manage.py runserver"또는 Joschua와 같이 다른 변형으로 잘 보입니다. 시작한 터미널에 인쇄됩니다. cron 등에서 FCGI를 실행하는 경우, 이는 단지 무의미하게 버려지고 완전히 잃게됩니다.
경고 또는 알림과 같은 "인쇄"가 필요한 곳에서는 출력을 캡처하여 어딘가에 배치하기 위해 syslog에 푸시하는 python의 로거 인스턴스를 사용합니다. 이로드되는 나는이 모듈 중 하나에 로깅의 인스턴스를 인스턴스화 - models.py 난 그냥 그것의 편의를 위해 고른 곳이 있었고, 난 요청에 굴러 오기 전에 항상 평가받을 줄 알았
import logging, logging.handlers
logger = logging.getLogger("djangosyslog")
hdlr = logging.handlers.SysLogHandler(facility=logging.handlers.SysLogHandler.LOG_DAEMON)
formatter = logging.Formatter('%(filename)s: %(levelname)s: %(message)s')
hdlr.setFormatter(formatter)
logger.addHandler(hdlr)
. 당신이 당신의 뷰에서 로거 또는 어떤 메시지를 호출 할 때 다음 :
logger = logging.getLogger("djangosyslog")
logging.warning("Protocol problem: %s", "connection reset", extra=d)
거기에는 .error(), .critical(), 그리고 더 - 핵심적으로 견실 한 자세한 내용은 http://docs.python.org/library/logging.html을 확인하십시오.
디버그 정보를 찾고 계신다면 Rob Hudson의 디버그 도구 모음은 훌륭합니다. 저는 자주 개발 과정에서이 도구를 자주 사용합니다. 주어진 페이지를 생성하는 데 사용 된 SQL을 포함하여 현재 요청 및 응답에 대한 데이터를 제공합니다. 컨텍스트/응답에 관심이있는 문자열 인 문자열을 눌러 인쇄물과 같은 데이터에 삽입 할 수 있습니다. 그러나 다루기가 다소 어려웠습니다.
경고 : WSGI에서 인쇄 명령문을 사용하여 코드를 배포하려고하면 작업이 중단 될 것으로 예상됩니다. 대신 로깅 모듈을 사용하십시오.
인쇄을 사용하지 마십시오. 배포하면 표준 출력으로 인쇄되고 WGSI는 중단됩니다.
로깅을 사용하십시오. 개발 목적으로 설정하기가 정말 쉽습니다. 프로젝트에서 __init__.py :
import logging
from django.conf import settings
fmt = getattr(settings, 'LOG_FORMAT', None)
lvl = getattr(settings, 'LOG_LEVEL', logging.DEBUG)
logging.basicConfig(format=fmt, level=lvl)
logging.debug("Logging started on %s for %s" % (logging.root.name, logging.getLevelName(lvl)))
이제 로그하는 모든 항목이 stderr (이 경우 터미널)로 이동합니다.
logging.debug("Oh hai!")
플러스 당신은 LOG_LEVEL 설정하여 settings.py의 상세를 제어 할 수 있습니다.
- 1. 탭은 어디로 이동합니까?
- 2. 메이븐 목표는 어디로 이동합니까?
- 3. 내 업로드는 어디로 이동합니까?
- 4. 로그 스트림은 어디로 이동합니까?
- 5. wicket으로 hibernate.cfg.xml 파일은 어디로 이동합니까?
- 6. webservice에서 console.writeline 출력은 어디로 이동합니까?
- 7. System.err.println 출력은 Jboss에서 어디로 이동합니까?
- 8. HTML 탭을 누르면 포커스는 어디로 이동합니까?
- 9. common_test에서 io : format을 호출하면 어디로 이동합니까?
- 10. Silverlight의 MVVM - 비동기 서비스 로직은 어디로 이동합니까?
- 11. 초기화하지 않은 전역 변수는 초기화 후 어디로 이동합니까?
- 12. 내 .net 앱에서 인쇄 할 때 색상이 잘못되었습니다.
- 13. BCP 유틸리티를 사용하여 bcp 형식 파일을 만들면 어디로 이동합니까?
- 14. Linux Tomcat 7 설치에서 webapp의 로깅 파일은 어디로 이동합니까?
- 15. 해외 호스팅은 서재응에 영향을 미치며, 클라우드 컴퓨팅은 어디로 이동합니까?
- 16. Zend Framework- 내 메서드 호출은 어디로 이동합니까? 모델 컨트롤러?
- 17. django - 여러 페이지 인쇄
- 18. 인쇄 할 때 호출 할 때 인쇄 메서드가 디버깅 할 때 호출되지 않았습니다.
- 19. addChild를 사용할 때 스테이지가 이동합니까?
- 20. 모바일 사파리 웹 앱에서 인쇄
- 21. Django 앱에서 정기 이메일을 보내시겠습니까?
- 22. 루프 카운터 django html로 인쇄
- 23. iPhone 및 iPad 앱에서 인쇄 할 수 있습니까?
- 24. django-disqus 앱에서 disqus_export 실행
- 25. 인쇄 할 때 인쇄 할 때 여전히 CSS가 일부 배경 이미지를 표시합니다.
- 26. 편지를 생성하고 인쇄 할 때 무엇을 사용해야합니까?
- 27. fullcalendar를 인쇄 할 때 단추를 숨기기
- 28. 인쇄 할 때 div 크기 조정
- 29. Infopaht가 브라우저에 표시하고 인쇄 할 때
- 30. 인쇄 할 때 CSS 효과가 없습니다!
올바른 내용입니다. 또한 아파치를 사용하여 서버에 파일을 저장하고 있다면 mod_wsgi는 'print'문을 실행할 때마다 복구 할 수없는 오류가 발생한다는 것을 알고 있습니다. 예 : 만약 당신이'print '작업을 끝내면 OK! "를 실행하면 아파치에 스크립트를 넣을 때이 줄에서 스크립트가 죽을 것이다. 이런 이유로, 장고 앱에서 인쇄를 사용하지 않아도됩니다. – linked
@linkedlinked : 적절한 구성 지시문을 사용하지 않는 경우에만. –