MOLogFormatter.m 1.4 KB

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