응용 프로그램에서 Boost 1.63.0 로그 라이브러리를 사용하고 있습니다. 다양한 로그 파일을 초기화하기 위해 구성 INI 파일에서 싱크를 구성하기 위해 boost::log::init_from_stream(...)
메서드를 사용하고 있습니다.boost :: log 구성 파일 변수 사용
원래 부스트 로그의 파일 순환 동작에 문제가있었습니다. 파일이 현재 작업 디렉토리에서 작성되고 파일 회전 트리거 또는 응용 프로그램 닫기의 "대상"디렉토리로 이동되었습니다. 원하는 동작은 파일이 "대상"디렉토리에 직접 작성되는 것입니다. 나는이 게시물의 도움으로 이것을 바로 잡았다 : boost::log add_file_log not writing if app exits with CTRL_CLOSE_EVENT
간단히 말해, "FileName"키워드에 이름 만이 아닌 전체 경로 정보를 제공한다. 이것은 작동하지만 구성 파일을 "정리"하는 좋은 방법이 있는지 궁금합니다.
Target="C:\\ProgramData\\MyApplication\\Logs"
FileName="C:\\ProgramData\\MyApplication\\Logs\\AppLog_%N.log"
단지 "대상"을 지정 할 수있는 것이 정말 좋은 것을 : 예를 들어
는 INI 파일은 현재와 같은 모두 "대상"과 "파일 이름"키워드를 지정해야합니다 그런 다음 "FileName"변수 정의에서 해당 변수를 사용하십시오. 이렇게하면 한 가지만 변경하면 이후의 변경 사항을 훨씬 간단하게 만들 수 있습니다. 다음과 같이 입력하십시오 :
#Define Target Directory for file rotation
Target="C:\\ProgramData\\MyApplication\\Logs"
#Define File Name pattern
FileName="%Target%\\AppLog_%N.log"
--- OR ---
FileName="$(Target)\\AppLog_%N.log"
이 작업을 수행 할 수 있습니까?