파이썬 로깅 예제

또한 QueueListener를 하위 클래스로 사용하여 다른 종류의 큐(예: ZeroMQ `구독` 소켓)에서 메시지를 받을 수도 있습니다. 다음은 예제입니다: 다행히도 대부분의 경우 개발자는 세부 정보를 알 필요가 없습니다. 파이썬 설명서에는 로깅 모듈에 대한 훌륭한 기사와 이 모든 것이 어떻게 함께 작동하는지에 대한 설명서가 포함되어 있습니다. 이 문서의 나머지 부분에서는 이 모듈을 사용하는 모든 가능한 방법 대신 모범 사례에 중점을 둡니다. 로깅 수준을 이해해 보겠습니다. 더 많은 모범 사례에 관심이 있다면 파이썬 개발자가 동료 토탈러 마틴 치킬리안이 저지른 가장 일반적인 10가지 실수를 읽어보십시오. Python2.7 이후 파일Config 및 dictConfig (스키마의 매개 변수)에 대한 새 인수 이름 „disable_existing_loggers“가 False로 설정하여 위에서 언급 한 문제를 해결할 수 있습니다. 예: 로깅 모듈의 유연성을 통해 적절한 수준으로 모든 곳에서 로깅 레코드를 작성하고 나중에 구성할 수 있습니다. 사용 하는 적절 한 수준은 무엇입니까, 당신은 요청할 수 있습니다.

여기에서 제 경험을 공유합니다. 버전 3.5에서 변경: Python 3.5 이전에 QueueListener는 항상 큐에서 받은 모든 메시지를 초기화된 모든 처리기로 전달했습니다. 이는 레벨 필터링이 큐가 채워진 다른 쪽에서 모두 수행되었다고 가정했기 때문입니다. 3.5 이후부터 이 동작은 키워드 인수 respect_handler_level=True를 수신기의 생성자에게 전달하여 변경할 수 있습니다. 이 작업이 완료되면 수신기는 각 메시지의 수준을 처리기의 수준과 비교하고 적절한 경우에만 처리기에 메시지를 전달합니다. 이 패턴을 사용하면 서로 다른 라이브러리가 팩터리를 함께 연결할 수 있으며 서로의 특성을 덮어쓰거나 표준으로 제공된 속성을 실수로 덮어쓰지 않는 한 놀라움은 없어야 합니다. 그러나 체인의 각 링크는 모든 로깅 작업에 런타임 오버헤드를 추가하고 필터를 사용하여 원하는 결과를 제공하지 않는 경우에만 이 기술을 사용해야 합니다. 주 응용 프로그램은 로그 메시지가 필요한 곳으로 이동하도록 로깅 하위 시스템을 구성해야 합니다. Python 로깅 모듈은 이를 미세 조정하는 많은 방법을 제공하지만 거의 모든 응용 프로그램의 경우 구성이 매우 간단할 수 있습니다. 최신 파일은 항상 logging_rotatingfile_example.out이며 크기 제한에 도달할 때마다 접미사 .1로 이름이 바뀝니다. 각 기존 백업 파일의 이름이 바뀌어 접미사(.1은 .2 등)를 증가시키고 .6 파일은 지워집니다. `extra`를 사용하면 dict와 같은 개체의 값이 LogRecord 인스턴스의 __dict___에 병합되어 dict와 같은 개체의 키에 대해 알고 있는 Formatter 인스턴스에서 사용자 지정된 문자열을 사용할 수 있다는 장점이 있습니다.

다른 방법이 필요한 경우(예: 컨텍스트 정보를 메시지 문자열에 미리 준비하거나 부가하려는 경우) 로거어어를 하위 클래스로 분류하고 프로세스()를 재정의하기만 하면 됩니다. 다음은 간단한 예입니다: 모든 로그 메시지가 동일하게 만들어지는 것은 아닙니다. 로깅 수준은 파이썬 설명서에 나열되어 있습니다. 참조를 위해 여기에 포함됩니다. 표준 모듈을 사용하여 Python에서 로깅 수준을 설정하면 해당 수준의 모든 이벤트를 위로 처리하려는 라이브러리를 알려줍니다. 로그 수준을 INFO로 설정하면 NOTSET, 디버그 및 정보 메시지가 포함됩니다.

Komentáře nejsou povoleny.