mfc 로그파일 예제

이 멤버는 로그 파일에 줄을 씁니다. 그 사용은 인쇄물과 동일합니다. 이 회원에 대해 할 말이 많을 것 같지만, 나는 일을 단순하게 유지하는 것을 선호합니다. 그리고 그것은 간단합니다. 각 소스는 한 번에 하나의 이벤트 로그에만 쓸 수 있습니다. 그러나 응용 프로그램은 여러 소스를 사용하여 여러 이벤트 로그에 쓸 수 있습니다. 예를 들어 응용 프로그램에는 서로 다른 이벤트 로그 또는 다른 리소스 파일에 대해 구성된 여러 소스가 필요할 수 있습니다. 기존 원본의 구성 세부 정보를 변경하려면 원본을 삭제한 다음 새 구성으로 만들어야 합니다. 다른 응용 프로그램이나 구성 요소가 기존 원본을 사용하는 경우 기존 원본을 삭제하는 대신 업데이트된 구성으로 새 원본을 만듭니다. Windows API에는 디버거에서 실행되는 프로세스가 가로채서 디버거 창에 표시되는 메시지를 내전송할 수 있다는 흥미로운 기능이 있습니다. 예를 들어 응용 프로그램이 Visual Studio IDE에서 실행되는 경우 IDE 창에 디버그 메시지를 쓸 수 있습니다.

basic_debug_output_backend 백 엔드는 이러한 메시지를 간단하게 내보내는 방법을 제공합니다. 또한 응용 프로그램 성능을 최적화하기 위해 응용 프로그램이 디버거에서 실행되고 있는지 여부를 확인하는 특수 필터를 사용할 수 있습니다. 다른 많은 싱크 백엔드와 마찬가지로 이 백 엔드도 메시지 텍스트를 작성하기 위해 포터 설정을 지원합니다. codeproject 및 다른 곳에서 많은 로그 파일 코드 예제가 있습니다. 이것은 다른 일부에 비해 매우 간단합니다. 파일 이름 패턴에는 위의 예제에서 볼 수 있는 와일드카드와 같은 여러 와일드카드가 포함될 수 있습니다. 지원되는 자리 표시자는 다음과 같습니다. %02i는 한 달 동안 유용한 선택이므로 09 개월은 10 개월을 추월하지 않습니다. 테스트를 위해 systime.wMinute를 선택하여 새 폴더를 더 빠르게 만듭니다. 닫힌 후에는 회전된 파일을 수집할 수 있습니다.

이렇게 하려면 회전된 파일을 수집할 대상 디렉터리와 선택적으로 크기 임계값을 지정하여 파일 수집기를 설정해야 합니다. 예를 들어 init_logging 함수를 수정하여 회전된 파일을 고유한 디렉터리로 배치하고 파일의 총 크기를 제한할 수 있습니다. 다음 함수가 구성된 싱크를 사용하여 init_logging에 의해 호출된다고 가정해 봅시다: 첫째, 사용자는 이벤트 리소스를 사용하여 자신의 라이브러리를 빌드해야 합니다(프로세스는 MSDN에 설명되어 있음). 이 프로세스의 일부로 모든 이벤트를 설명하는 메시지 파일을 만들어야 합니다. 예를 들어, 다음 내용을 메시지 파일로 사용했다고 가정해 봅시다: 백 엔드는 reliable_message__와 같은 프로세스 간 메시지 큐로 인스턴스화되어야 하는 text_ipc_message_queue_backend 클래스 템플릿에 의해 구현됩니다. 큐. 다음 예제 프로그램은 로거 프로세스를 보여 줍니다. 예를 들어 오류 메시지가 파일 및 추적 창으로만 이동하지만 모든 경고가 추적 창으로만 이동하도록 한다고 가정해 보겠습니다. 또한 오류 파일 및 출력 창 외에 모든 어설션을 메시지 상자에 넣을 수도 있습니다. 이것은 당신이 이것을 달성하는 방법입니다. 다음으로 사용자는 응용 프로그램 로깅 특성과 이벤트 식별자 간의 매핑을 제공해야 합니다. 이러한 식별자는 메시지 파일을 컴파일한 결과로 메시지 컴파일러 출력에 제공되었습니다.

basic_event_composer와 다음 예제와 같이 이벤트 ID 매핑 중 하나를 사용할 수 있습니다. 여기에는 절대 경로 또는 파일 이름만 포함될 수 있습니다. 후자의 경우 로그 파일은 실행 파일과 동일한 디렉터리에서 만들어집니다. 항상 나에게 문제를 가져오는 “현재 디렉토리”에 관한 것은 없습니다. 싱크 백 엔드를 사용하면 파일 회전 프로세스에 후킹하여 회전 전후 작업을 수행할 수 있습니다.