개발관련/other

메서드 이름과 줄 번호를 인쇄하고 조건부로 NSLog를 비활성화하는 방법

Rateye 2021. 6. 17. 21:13
728x90
반응형
질문 : 메서드 이름과 줄 번호를 인쇄하고 조건부로 NSLog를 비활성화하는 방법은 무엇입니까?

Xcode에서 디버깅에 대한 프레젠테이션을 진행 중이며 NSLog를 효율적으로 사용하는 방법에 대한 자세한 정보를 얻고 싶습니다.

특히 두 가지 질문이 있습니다.

  • 현재 메서드의 이름 / 줄 번호를 쉽게 NSLog하는 방법이 있습니까?
  • 릴리스 코드를 컴파일하기 전에 모든 NSLog를 쉽게 "비활성화"하는 방법이 있습니까?
답변

다음은 내가 많이 사용하는 NSLog 주변의 유용한 매크로입니다.

#ifdef DEBUG
#   define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)
#else
#   define DLog(...)
#endif

// ALog always displays output regardless of the DEBUG setting
#define ALog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)

DLog 매크로는 DEBUG 변수가 설정된 경우에만 출력하는 데 사용됩니다 (디버그 구성을위한 프로젝트의 C 플래그에서 -DDEBUG).

ALog는 항상 텍스트를 출력합니다 (일반 NSLog처럼).

출력 (예 : ALog (@ "Hello world"))은 다음과 같습니다.

-[LibraryController awakeFromNib] [Line 364] Hello world 
출처 : https://stackoverflow.com/questions/969130/how-to-print-out-the-method-name-and-line-number-and-conditionally-disable-nslog
728x90
반응형