나는 로그의 대상 독자가 두 국적의 사람들 일 수있는 다국적 프로젝트를 진행하고 있습니다. 따라서 하나 이상의 언어로 로그인하는 것이 중요 해지고 있습니다. 언어를 사용할 때마다 로그를 기반으로하는 2 개의 다른 로그 폴더에 대해 생각하고 있습니다. 그러나 함께 나오고있는 기능 중 일부가 아웃풋인지 궁금합니다. log4cpp와 같은 로깅 프레임 워크가 있습니까?C++을 사용하여 현지화 로깅을위한 최선의 접근법
답변
다른 주석 작성자가 언급했듯이 다국어 로깅을 시도하여 잘못된 경로를 무너 뜨리는 것처럼 들립니다.
나의 추천 영어를 사용하는 것 (기술 정보에 대한 표준이며, 어떤 생각 엔 당신이 가장 잘 알고 언어입니다) 당신이 사용하는 언어이 있는지 확인 명확, 문법적으로 정확한및 은 모호합니다.. 그런 다음 기술자 중 한 명이 기술 자료를 이해할 수 없으면 Google 번역과 같은 기계 번역 엔진을 통해 기술자를 쉽고 효율적으로 실행할 수 있습니다. 또는 실제로 로그를 처리하고 Google 번역을 통해 모든 것을 실행할 수 있습니다. 특히 번역문에 주석을 달아 언어 내용을 표시하는 경우 번역 된 텍스트를 추가 할 수 있습니다.
입력 언어가 잘 작성되었다고 가정하면 컴퓨터 변환은 일반적으로 최종 사용자가 이해할 수있는 좋은 결과를 제공합니다. 메시지가 명확하지 않고 오타 또는 약어가있는 경우에는 기계 번역이 눈에 띄지 않게됩니다.
이 답변에 한 가지 더 추가 할 것입니다. 각 로그 메시지에 고유 ID를 지정하십시오. 이렇게하면 로그 메시지를 이해하지 못하더라도 로그 항목을 생성 한 코드 행을 식별 한 것이 100 % 확실 할 수 있습니다. –
로그를 쓰는 것은 자연스럽게 파일 열기, 찾기 및 쓰기 작업으로 인해 실행 속도가 저하됩니다.
많은 개발자와 아키텍트가 여러 수준에서 로그를 작성하도록 제안하는 주된 이유 중 하나입니다. 로그 항목의 깊이를 늘리면 문제가 더 잘 추적됩니다. 더 높은 수준에서는 더 많은 로그 항목이 생성되어 프로세스 속도가 떨어짐을 알 수 있습니다.
한 언어에서 다른 언어로 번역 할 수있는 서비스를 사용하는 것이 좋습니다. 무료 또는 유료로 번역 된 라이브러리가 있는지 확인합니다. 백그라운드에서 실행되는 작은 유틸리티 프로그램을 작성하여 프로세스 유휴 시간 동안이 변환을 수행 할 수 있습니다.
그럼 한 가지 제안을 당신이 거기에서를 기록 할 수 있습니다 로그 메시지를 수신합니다 다른 프로세스/스레드 ..
를 사용할 수있다이 감소 내가 메인 프로세스/스레드/O 로깅 시간과 당신은 ... 다 들어
을 저기 로깅 언어와 관련된 모든 변경을 할 수 있습니다 - 다국어 지원 당신이 WideChar로 문자열을 작성하려고 할 수 있다고 생각 ... 내가 확실하지 오전하지만 ..
위한 최선의 방법을 C++을 사용하여 로깅 현지화
Install Qt 4 문자열에 QObject :: tr/tr() 매크로를 사용하십시오. 원하는 언어로 문자열을 작성하십시오. QT Linguist를 사용하여 문자열을 현지화하는 번역기를 얻으십시오.
번역사가 천재 인 경우에도 완벽한 번역이 불가능하므로 많은 "재미있는"오해가있을 수 있습니다. 따라서 프로그래밍 팀의 주요 언어를 선택하는 것이 더 좋은 방법 일 수 있습니다. 두 개 이상의 언어로 로그 리더를 구현하는 것입니다 접근하는
한 가지 방법을
:
--EDIT--
전에이 부분을주의하지 않았다. 일반 텍스트 메시지를 쓰는 대신 문자열의 서식이 지정되어 있으면 메시지 ID (일종의 매크로로 생성)와 문자열 인수를 덤프 할 수 있습니다. "로그 판독기"를 사용하면 로그 파일을 보는 동안 원하는 언어를 선택하고 QTranslator와 비슷한 메커니즘을 사용하여 ID/인수를 기반으로 메시지를 번역 할 수 있습니다. 이 방법의 장점은 나중에 언어를 추가 할 수 있다는 것입니다. 따라서 이전 로그를 다시 변환 할 수 있습니다. 나쁜 점은 메시지 ID와 인수 외에도 일반 텍스트 메시지를 추가 할 수 있지만 로그 뷰어를 작성해야하지만이 형식은 "일반인"으로 읽기가 더 어려울 것입니다.
Qt 4에는 번역 도구와 함께이 프레임 워크의 대부분이 구현되어 있습니다 (텍스트/데이터 스트림에 변형을 덤프하는 루틴 등이 있습니다).자세한 내용은 QTranslator 설명서 및 Linguist manual을 참조하십시오.
로그 메시지의 현지화에 대해 이야기하고 있다면 로그에 하나의 언어가 표시되고 둘 다 표시되지는 않습니다. OP는 두 언어의 메시지를 모두 사용할 수 있도록 로그하는 방법을 묻습니다. – Clafou
로그는 개발자 용이며 영어로 작성해야합니다. 그러면 다른 언어를 이해하지 못하는 사람이 문제를 디버그해야 할 때 작업하는 시간을 절약 할 수 있습니다. –
@ RafałRawicki 아마도 로그를보고 싶은 많은 개발자 그룹이 있습니다. –
@ RafałRawicki : 아무도 모국어가 아닌 팀이 영어를 사용하도록 강요 한 경험으로 통일성은 의사 소통을 희생시키는 가치가 없다고 가르쳐 줬습니다. 팀이 가장 잘 알고있는 언어를 사용하십시오. 게다가 웹 서버를 포함하여 많은 응용 프로그램이 모국어가 영어가 아닐 수도있는 최종 사용자 (예 : 시스템 관리자)에게 로깅 기능을 제공합니다. 시스템 로그에있는 –