DDOSLogger控制台打印,没有使用logMessage的时间戳而是os_log_xxx执行时的时间戳,因此会和logMessage的创建时间有个时间差。如果打印时选择的是DDLogFlagError,打印将是同步执行,这个时间差会非常小。而如果是DDLogFlagError以下级别,那么这条打印将是异步执行的,这时的时间差会更大,和NSLog混用时可能会误导你。因此和NSLog混用或者场景同步打印要求比较高,建议使用DDLogFlagError同步打印日志。
1 | - (DDLoggerName)loggerName { |
例子:打印时选择的是DDLogFlagDebug。
1 | - (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask |
日志:
1 | 2023-04-04 11:05:59.463803+0800 AFNetworking_fx[3039:152895] <__NSURLSessionLocal: 0x103b48e60> |
logMessage的创建时间是2023-04-04 11:06:00:600,但控制台显示的时间戳是2023-04-04 11:06:00.601922+0800。相差2ms。还以为是didReceiveData的调用跑到didReceiveResponse前面去了,原来是打印的问题。