[c++] Boost.Log 로깅 라이브러리 사용 경험이 있으십니까? [닫은]

Boost.Log 로깅 라이브러리 사용을 고려하고 있습니다 . Boost.Log를 사용하는 사람이 있습니까? 이와 관련하여 귀하의 경험을 공유하십시오.

내가 고려하고있는 다른 라이브러리는 Apache log4cxx (설치하는 것이 지루해 보이지만 팀 동료는 시작하기 쉬운 것을 원함)와 Pantheios (추가 프런트 엔드 및 백 엔드에서 작동하기 때문에 동일한 문제)입니다.



답변

업데이트 : 나는 이것이 여러 가지 이유로 모든 프로젝트에서 모든 Boost 종속성을 제거하기로 결정했기 때문에 Boost.Log를 내 사용자 지정 로깅으로 대체 한 이후로 작성되었습니다. Boost 사용에 문제가 없다면 Boost.Log가 Klaim의 답변으로 판단되는 유효한 선택이라고 생각합니다 .

2010 년 Boost.Log에 대한 나의 경험은 다음과 같습니다.


Boost.Log를 내 게임 엔진에 성공적으로 통합했고 그것에 대해 좋은 이야기 만 할 수 있습니다. 물론, 버전 2가 공식 Boost.Log가 될 실제 버전이 될 것이기 때문에 사용하기는 조금 이르다.

사용 가능한 버전 “1.0”은 유지 관리되지 않습니다. 업데이트를 받으려면 불안정해질 수있는 블리딩 엣지 (트렁크) 버전을 사용해야합니다. 심각한 프로젝트에서이 버전을 사용하려는 경우이를 고려하십시오. 블리딩 엣지 버전 또는 향후 파손을 사용하는 것을 두려워하지 않는다면 사용해보십시오. 현재 상태 그대로 사용하는 것이 정말 좋습니다.

나는 log4j / log4cxx의 계층 적 로깅 시스템이 우월하다고 오랫동안 생각했지만 Boost.Log는 저를 다르게 생각하게했습니다. 필터링 및 속성은 훨씬 더 유연합니다.

프런트 엔드 / 백엔드로 분리 된 싱크 설계로 백엔드를 추가하기가 정말 쉽습니다. 프런트 엔드에서 처리하는 동기화 문제 나 필터링에 대해 걱정할 필요가 없습니다. 라이브러리에는 이미 많은 백엔드, 회전 파일, 콘솔, syslog, Windows 이벤트 레지스터 등이 함께 제공됩니다.

나만의 싱크 백엔드를 작성했습니다. 하나는 게임 내 콘솔로 이동하고 다른 하나는 더 심각한 이벤트에 대한 일종의 알림 시스템으로 이동합니다. 내가 예상했던 것보다 쉬웠고 단 몇 분 만에 실행했습니다.

마지막으로, 메인테이너 / 개발자에게도 정말 도움이됩니다. 프로젝트 포럼에서 많은 도움을받을 수 있습니다. 그는 내가보고 한 바로 이번 주말에 두 가지 버그 (하나의 주요 버그)를 고쳤습니다 🙂


답변

업데이트 : 저는 Boost.Log를 사용하고 있으며 게임 엔진 시스템에 로그인하여 매우 만족합니다. 빠르고 스레드로부터 안전하며 필요할 때 매우 유연합니다.

Boost.Log는 올해 (2013) 릴리스에서 모든 Boost 라이브러리와 함께 제공되어야합니다.


Boost.Log는 그 위에 로그 시스템을 설정하기 위해 만들어집니다. 문서를 읽으면 너무 유연해서 생각할 수있는 모든 로깅 시스템을 구축 할 수 있다는 것을 알 수 있습니다 (예 : 멀리 떨어진 컴퓨터에 로깅).

따라서 간단한 프로젝트에서 쉽게 사용할 수있는 매크로가 있지만 로깅을 실제로 이해하고 애플리케이션을위한 특정 아키텍처를 구축하려는 사람들에게 주로 유용한 종류의 라이브러리라고 생각합니다.

성능에 관해서는 제출시 다른 (덜 유연한) 로깅 라이브러리에 비해 느리게 만드는 문제가 있었지만 초안이었고 첫 번째 릴리스가 아직 나오지 않았기 때문에 코드를 작성하지 않는다면 신경 쓰지 않을 것입니다. 시간이 중요한 애플리케이션.

결국 “지금”평가하기에는 너무 “새롭다”고 생각합니다. 이것만큼 유연한 다른 로깅 라이브러리는 없으며 많은 사람들이 그것을 사용할 필요성을 느낄지 모르겠습니다.

업데이트 : Boost.Log 작성자와의 최근 이메일 교환으로 인해 tat Boost.Log가 빠른 로깅을위한 탁월한 대안임을 제안하는 일부 데이터가 생성되었습니다.


답변

최근에 시작한 프로젝트에 로깅 시스템을 구현하는 방법을 검토했습니다.

언급 한대로 log4cxx를 시도했지만 실제로 설치하는 것은 매우 지루합니다. VS2012 (다른 종속성 라이브러리 포함)에서 컴파일하는 데 몇 시간이 걸렸지 만 프로젝트에서 사용할 때 충돌이 발생했습니다. 확실히 표준 라이브러리 불일치로 인해 이상한 일이 벌어졌지만 알아낼 수 없었습니다.

그래서 저는 log4cpp로 전환하여 단 몇 분 만에 실행했습니다. 나는 그것이 내가 필요로하는 바로 그 우아하고 가벼운 것을 발견했다. 잘 알려진 log4j & co와 동일한 기능을 갖는 큰 이점이 있습니다. 팀워크에 실질적인 도움이 될 수있는 로깅 시스템 (구성 파일을 통한 구성 등)

성능에 관한 한, 로거가 메시지 수준에 대해 활성 상태인지 확인하기 위해 하나의 함수 호출이 필요하고, 실제로 데이터를 기록하기 위해 하나의 함수 호출이 필요합니다.

몇 가지 집에서 만든 매크로 ( 메시지에 LINE & co. 추가 )를 사용하면 log4cpp가 내 프로젝트에서 정말 유용하다는 것이 입증되었습니다.

불행히도 저는 Boost.Log를 시도하지 않았으므로 그것에 대해 말할 수는 없지만 Boost.Log 방식을 사용하지 않기로 선택한 경우이 피드백이 여전히 유용하기를 바랍니다.


답변