2014-04-22 2 views
1

부스트 로그를 사용하고 있는데 기본 로그 원동력 파일을 만들고 싶습니다 : 오류가있는 경우 매시간마다 새로운 오류 로그를 만들고 "file_ % Y % m % d % .log ". 이 부스트 라이브러리에 2 가지 문제점이 있습니다. 1. 매시간 파일 시작 방법? rotation_at_time_interval 매개 변수로는 파일에 처음 기록 된 레코드와 관련하여 새 파일을 만들고 파일 이름의 시간이 해당 규칙과 일치하지 않기 때문에이 작업을 수행 할 수 없습니다. 싱크대에서 하나의 파일에 대해 여러 개의 rotation_at_time_point를 사용할 수 있습니까? 아니면 다른 해결책이 있습니까? 2. 파일이 어떤 크기를 초과하면 새로운 파일을 시작하고 그 경우 파일 이름에 일부 색인을 추가해야합니다. 파일 이름에 rotation_size 매개 변수와 % N을 추가하면 응용 프로그램이 실행되는 동안 N이 항상 증가합니다. 내 파일 이름이 바뀌는 것처럼 N이 매시초에 재설정되기를 원합니다. 누구든지이 부스트 로그 라이브러리로 어떻게 할 생각이 있습니까?매시간 부스트 로그

이것은 업계에서 로그 파일을 만드는 기본 원칙입니다. 로그 파일을 만드는 데 전념하는 라이브러리로는이 작업을 수행 할 수 없다는 것을 이해하지 못합니다.

답변

0

라이브러리 자체는 매시간 구걸시 파일을 회전하는 방법을 제공하지 않지만 동일한 문제가있어서 매 시간 구걸시 true를 반환하는 함수 래퍼를 사용했습니다. 코드의 효율성을 제어 할 수 있기 때문에이 방법이 저에게 더 좋습니다. boost.org에서

: 두 번째 질문에 대한

bool is_it_time_to_rotate(); 


void init_logging(){ 

boost::shared_ptr<sinks::text_file_backend> backend = 
    boost::make_shared<sinks::text_file_backend>(
     keywords::file_name = "file_%5N.log", 
     keywords::time_based_rotation = &is_it_time_to_rotate 
    ); 

}

난 정말 잘 undrestand니까.

관련 문제