LNLogger.swift 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. //
  2. // LNLogger.swift
  3. // Lanu
  4. //
  5. // Created by OneeChan on 2025/11/11.
  6. //
  7. import Foundation
  8. import CocoaLumberjackSwift
  9. /// 日志工具类,基于 CocoaLumberjack 实现,支持类似 print 的参数格式
  10. enum Log {
  11. private static func buildLogMessage(items: Any..., separator: String) -> String {
  12. let logs = items.map { String(describing: $0) }
  13. return logs.joined(separator: separator)
  14. }
  15. static func v(
  16. _ items: Any...,
  17. separator: String = " ",
  18. terminator: String = "\n",
  19. file: StaticString = #file,
  20. function: StaticString = #function,
  21. line: UInt = #line
  22. ) {
  23. DDLogVerbose("\(buildLogMessage(items: items, separator: separator))", level: .verbose, file: file, function: function, line: line)
  24. }
  25. static func d(
  26. _ items: Any...,
  27. separator: String = " ",
  28. terminator: String = "\n",
  29. file: StaticString = #file,
  30. function: StaticString = #function,
  31. line: UInt = #line
  32. ) {
  33. DDLogDebug("\(buildLogMessage(items: items, separator: separator))", level: .debug, file: file, function: function, line: line)
  34. }
  35. static func i(
  36. _ items: Any...,
  37. separator: String = " ",
  38. terminator: String = "\n",
  39. file: StaticString = #file,
  40. function: StaticString = #function,
  41. line: UInt = #line
  42. ) {
  43. DDLogInfo("\(buildLogMessage(items: items, separator: separator))", level: .info, file: file, function: function, line: line)
  44. }
  45. static func w(
  46. _ items: Any...,
  47. separator: String = " ",
  48. terminator: String = "\n",
  49. file: StaticString = #file,
  50. function: StaticString = #function,
  51. line: UInt = #line
  52. ) {
  53. DDLogWarn("\(buildLogMessage(items: items, separator: separator))", level: .warning, file: file, function: function, line: line)
  54. }
  55. static func e(
  56. _ items: Any...,
  57. separator: String = " ",
  58. terminator: String = "\n",
  59. file: StaticString = #file,
  60. function: StaticString = #function,
  61. line: UInt = #line
  62. ) {
  63. DDLogError("\(buildLogMessage(items: items, separator: separator))", level: .error, file: file, function: function, line: line)
  64. }
  65. }