이 답변은 실제로 라이브러리 다운로드에 포함 된 FAQ 파일에 있습니다. 다음 헤더가있는 고정 백엔드 DLL이 있고 클래스, 함수 및 줄 번호를 로그 파일에 포함 할 수 있습니다.
#include <pantheios/pantheios.hpp>
#include <pantheios/frontends/fe.N.h>
//#include <pantheios/frontends/fe.simple.h>
#ifndef PANTHEIOS_INCL_PANTHEIOS_H_TRACE
#define PANTHEIOS_TRACE_PREFIX __FILE__ "(" PANTHEIOS_STRINGIZE(__LINE__) "): " __FUNCTION__ ": "
#endif /* PANTHEIOS_INCL_PANTHEIOS_H_TRACE */
#include <pantheios/trace.h>
#include <pantheios/inserters.hpp>
#include <pantheios/backends/bec.file.h> // be.file header
은 여기에서 일어나고있는 것은 당신은 내가 위 한 것 인 trace.h를 포함하기 전에 PANTHEIOS_TRACE_PREFIX를 다시 정의해야한다는 것입니다. 다른 코드 행은 #define이 어디에 있는지 보여주기 위해 포함되어 있습니다. 그리고 지연된 응답에 대해 유감스럽게 생각합니다. 원하는 경우 누구나 간단한 파일 기반 로깅을 위해 솔루션에서 사용할 수있는 고정 백엔드 DLL 프로젝트로 블로그에 다운로드를 게시 할 수 있습니다. 당신이 프로젝트
업데이트 2010년 2월 28일 중부 표준시 오전 12시 53분에 관심이 있다면 코멘트를 남겨 : 참고로 여기 자주 묻는 질문에서 질문 :
Q9는 "Pantheios가 구성을 제공합니까 그 (컴파일러 지원 확인 또는 일부의 래퍼)를 작성하지 않고도
log(informational, __FUNCTION__, ": my message");
"그 동등한 로그인 메시지 포함하는 함수를 포함를 산출한다. [2008 년 3 월 15 일]
A9 : # 원하는 PANTHEIOS_TRACE_PREFIX을 # 정의해야합니다. 기본 으로는, 기능을 포함하도록 형식 <file>(<line>):
을 제공하는 __FILE__ "(" PANTHEIOS_STRINGIZE(__LINE__) "): "
당신이이 형식 <file>(<line>): <func>:
을 갖고 싶어라고 할 수 있습니다. 다음과 같이이를 위해 당신은 그것을 정의하는 것 : 정의 이 pantheios/trace.h의 포함 앞에 와야한다는
가
#include <pantheios/pantheios.h>
#define PANTHEIOS_TRACE_PREFIX __FILE__ " " PANTHEIOS_STRINGIZE(__LINE__) ": " __FUNCTION__ ": "
#include <pantheios/trace.h>
참고. 따라서보다 안전한 방법은 다음과 같습니다.
대단히 고마워요! 어떻게 FAQ에서 이것을 놓쳤는 지 궁금합니다 ... :) 나는 또한 DLL에서 모든 것을했는데 프로젝트와 얼마나 유사한지를 알면 흥미로울 것입니다. –
한 번만 더 설명 : 매크로 대신 메서드를 사용했으며 로그에는 호출자로 래퍼 메서드가 항상 포함되어있었습니다. 이 작업을 위해서는 모든 것이 매크로 여야합니다. –