| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- //
- // MOLogFormatter.m
- // MiMoLive
- //
- // Created by OneeChan on 2025/9/15.
- //
- #import "MOLogFormatter.h"
- #if DEBUG
- @implementation MOLogFormatter
- // 核心方法:格式化日志内容
- - (NSString *)formatLogMessage:(DDLogMessage *)logMessage {
- // 1. 格式化时间(精确到毫秒)
- NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
- dateFormatter.dateFormat = @"yyyy-MM-dd HH:mm:ss.SSS";
- dateFormatter.locale = [NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"];
- NSString *timeStr = [dateFormatter stringFromDate:logMessage.timestamp];
-
- // 2. 转换日志级别为缩写(V/D/I/W/E)
- NSString *levelStr;
- switch (logMessage.level) {
- case DDLogLevelVerbose: levelStr = @"V"; break;
- case DDLogLevelDebug: levelStr = @"D"; break;
- case DDLogLevelInfo: levelStr = @"I"; break;
- case FLLogLevelWarn: levelStr = @"W"; break;
- case DDLogLevelError: levelStr = @"E"; break;
- default: levelStr = @"?"; break;
- }
-
- // 3. 获取函数名和行号(logMessage 内置属性)
- NSString *function = logMessage.function; // 函数名
- NSUInteger line = logMessage.line; // 行号
-
- // 4. 组合最终格式:[时间] [级别] [函数名:行号] 日志内容
- return [NSString stringWithFormat:@"[%@] [%@] [%@:%ld] %@",
- timeStr, levelStr, function, (long)line, logMessage.message];
- }
- @end
- #endif
|