Xử lý nhật ký Objective-C

Phương pháp NSLog

Để in nhật ký, chúng tôi sử dụng phương thức NSLog trong ngôn ngữ lập trình Objective-C mà chúng tôi đã sử dụng ngay từ ví dụ Hello World.

Chúng ta hãy xem một đoạn mã đơn giản có in dòng chữ "Hello World" -

#import <Foundation/Foundation.h>

int main() {
   NSLog(@"Hello, World! \n");
   return 0;
}

Bây giờ, khi chúng ta biên dịch và chạy chương trình, chúng ta sẽ nhận được kết quả như sau.

2013-09-16 00:32:50.888 demo[16669] Hello, World!

Tắt nhật ký trong ứng dụng Trực tiếp

Vì NSLog mà chúng tôi sử dụng trong ứng dụng của mình, nó sẽ được in trong nhật ký của thiết bị và không tốt nếu in nhật ký trong một bản dựng trực tiếp. Do đó, chúng tôi sử dụng định nghĩa kiểu để in nhật ký và chúng tôi có thể sử dụng chúng như hình dưới đây.

#import <Foundation/Foundation.h>

#if DEBUG == 0
#define DebugLog(...)
#elif DEBUG == 1
#define DebugLog(...) NSLog(__VA_ARGS__)
#endif

int main() {
   DebugLog(@"Debug log, our custom addition gets \
   printed during debug only" );
   NSLog(@"NSLog gets printed always" );     
   return 0;
}

Bây giờ, khi chúng ta biên dịch và chạy chương trình ở chế độ gỡ lỗi, chúng ta sẽ nhận được kết quả sau.

2013-09-11 02:47:07.723 demo[618] Debug log, our custom addition gets printed during debug only
2013-09-11 02:47:07.723 demo[618] NSLog gets printed always

Bây giờ, khi chúng ta biên dịch và chạy chương trình ở chế độ phát hành, chúng ta sẽ nhận được kết quả sau.

2013-09-11 02:47:45.248 demo[3158] NSLog gets printed always