반응형
Xcode에서 로그 편하게 사용하는 방법
로그를 출력할 때
어떤 파일에서 출력한 로그인지, 어떤 Function에서 출력한 로그인지를 같이 출력할 수 있다.
출력할 수 있는 대표적인 정보들은 아래와 같다.
항목 | 사용법 | 예시 |
파일 경로 및 파일명 | __FILE__ | /Users/name/Desktop/ios/TestProject/TestProject/ViewController.m |
파일명 | __FILE_NAME__ | ViewController.m |
Function명 | __FUNCTION__ | -[ViewController viewDidLoad] |
파일 라인 | __LINE__ | 31 |
- __FILE__은 실제 파일의 위치가 출력되기 때문에 잘 사용하지 않음
- __FILE_NAME__은 __FUNCTION__ 출력 시 파일명이 출력되기 때문에 잘 사용하지 않음
- __FUNCTION__과 __LINE__ 을 주로 사용함
사용 방법
prefix-header 파일 또는 어딘가에 사용하고 싶은 형식대로 define 정의
* prefix 사용 방법 : https://es1015.tistory.com/401
#define NSLog(fmt, ...) NSLog(@"%s : %@", __FILE__, fmt, ##__VA_ARGS__)
// /Users/es/Desktop/ios/TestProject/TestProject/ViewController.m : test
#define NSLog(fmt, ...) NSLog(@"%s : %@", __FILE_NAME__, fmt, ##__VA_ARGS__)
// ViewController.m : test
#define NSLog(fmt, ...) NSLog(@"%s : %@", __FUNCTION__, fmt, ##__VA_ARGS__)
// -[ViewController viewDidLoad] : test
#define NSLog(fmt, ...) NSLog(@"%d : %@", __LINE__, fmt, ##__VA_ARGS__)
// 31 : test
// 개인적으로 많이 사용하는 형식
#define NSLog(fmt, ...) NSLog(@"%s[%d] %@",__FUNCTION__, __LINE__, [NSString stringWithFormat:(fmt), ##__VA_ARGS__])
// -[ViewController viewDidLoad][28] test
로그 시에는 일반적으로 사용하던 NSLog 형식 그대로 사용
// NSLog define 미정의 시
NSLog(@"test");
// test
// define 정의 시
#define NSLog(fmt, ...) NSLog(@"%s[%d] %@",__FUNCTION__, __LINE__, [NSString stringWithFormat:(fmt), ##__VA_ARGS__])
NSLog(@"test");
// -[ViewController viewDidLoad][28] test
반응형
'iOS > Swift + Objective-c' 카테고리의 다른 글
[Swift] #pragma mark 사용 방법 (MARK) (0) | 2021.04.26 |
---|---|
[objective-c] prefix.pch 파일 추가하기 (Precompiled Header) (1) | 2021.04.24 |
[objective-c] 프로토콜 구현 여부 체크 (Protocol) (0) | 2021.04.20 |
[objective-c] OS 잠금 활성화 여부 조회 (암호, Touch ID(Face ID) (0) | 2021.04.01 |
[iOS] WKWebView content size mobile 사이즈에 맞추기 (0) | 2021.03.05 |