별도의 스레드에서 실제 로깅을 수행하는 로깅 API를 작성해야합니다.호출 스택을 캡처하여 다른 스레드에서 실행하도록하십시오.
즉 일부 정보를 기록하려는 응용 프로그램이 있습니다. 그것은 내 API를 호출하고 api는 모든 인수 등을 캡처 한 다음 기록 할 별도의 스레드로 전달합니다.
로거 API는 가변 인수를 허용하므로 전체 초기 호출은 전체 호출 스택을 캡처하고 어떻게 든 로깅을 수행 할 스레드에 넘겨 줘야합니다.
전화 스택을 캡처 할 수있어서 기쁩니다. 그러나 나는이 호출 스택을 다른 메소드에 전달하는 방법을 확신하지 못한다.
저는 Linux에서 g ++를 사용하고 있으며 solaris에서 Sun의 CC v12와 함께 작동해야 할 수도 있습니다.
아이디어가 없습니다.
Thanks Frederik. 그것은 실제로 스레드 로거 뒤에있는 이론적 근거입니다. 나는 디스크 io의 느린 작업을 다른 스레드에 맡기고 싶습니다. 스택을 복사하려고 시도했지만 물론 여전히 기록되는 모든 객체가 기록 될만큼 길어야한다는 의미입니다. 나는 당신이 호출 지점에서 로깅 문자열을 생성하고 로거에 전달하는 것이 더 나은 접근 방법이라고 생각한다. – ScaryAardvark