문제

제작 환경에서 로깅 예외 등에 대한 스택 추적 (파일 이름 및 줄 번호) 정보를 얻고 싶습니다. DLL은 GAC에 설치됩니다. 이것을 할 방법이 있습니까?

이 기사 GAC에 PDB 파일을 넣는 것에 대해 말합니다.

디버그 기호 (.pdb 파일)를 GAC에 복사해야한다고 말할 수 있기 때문에 쉽게 찾을 수 있습니다. 그 자체로는 작동하지 않을 것입니다.

이 기사는 VS와의 디버깅을 말하지만 StackTrace를 기록하는데도 적용될 수 있다고 생각했습니다.

나는 대답에 대한 지시를 따랐다 이 질문 선택되지 않은 최적화 코드를 제외하고는 선택 사항이라고 말했습니다.

DLL과 PDB를 GAC에 복사했지만 여전히 스택 추적 정보를 얻지 못합니다. 스택 추적에 대한 로그 파일에서 얻은 내용은 다음과 같습니다.

OnAuthenticate at offset 161 in file:line:column <filename unknown>:0:0
ValidateUser at offset 427 in file:line:column <filename unknown>:0:0
LogException at offset 218 in file:line:column <filename unknown>:0:0

NLOG를 사용하고 있습니다.

내 nlog 레이아웃은 다음과 같습니다.

layout="${date:format=s}|${level}|${callsite}|${identity}|${message}|${stacktrace:format=Raw}"

$ {stacktrace : format = raw} 관련 부분입니다.

도움이 되었습니까?

해결책

소문자로 RAW를 사용해보십시오.

   ${stacktrace:format=raw}

그래도 작동하지 않으면 시도해보십시오.

   ${exception:format=stacktrace}

다른 팁

이 시도:

StringWriter sw = new StringWriter();
new Throwable().printStackTrace(new PrintWriter(sw));
String stackTrace = sw.toString();

String StackTrace에는 현재 스레드의 스택 스트레이스가 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top