উদ্দেশ্য সিতে আপনি যে পদ্ধতিটি ব্যবহার করে ডাকা হচ্ছে সে পদ্ধতিটি লগ করতে পারেন:
NSLog(@"%s", __PRETTY_FUNCTION__)
সাধারণত এটি লগিং ম্যাক্রো থেকে ব্যবহৃত হয়।
যদিও সুইফ্ট ম্যাক্রোর সমর্থন করে না (আমি মনে করি) আমি এখনও একটি জেনেরিক লগ স্টেটমেন্ট ব্যবহার করতে চাই যার মধ্যে ডাকা ফাংশনটির নাম অন্তর্ভুক্ত রয়েছে। সুইফটে কি তা সম্ভব?
আপডেট: আমি এখন লগিংয়ের জন্য এই গ্লোবাল ফাংশনটি ব্যবহার করি যা এখানে পাওয়া যাবে: https://github.com/evermeer/Stuff#print এবং যা আপনি ব্যবহার করে ইনস্টল করতে পারেন:
pod 'Stuff/Print'
কোডটি এখানে:
public class Stuff {
public enum logLevel: Int {
case info = 1
case debug = 2
case warn = 3
case error = 4
case fatal = 5
case none = 6
public func description() -> String {
switch self {
case .info:
return "❓"
case .debug:
return "✳️"
case .warn:
return "⚠️"
case .error:
return "🚫"
case .fatal:
return "🆘"
case .none:
return ""
}
}
}
public static var minimumLogLevel: logLevel = .info
public static func print<T>(_ object: T, _ level: logLevel = .debug, filename: String = #file, line: Int = #line, funcname: String = #function) {
if level.rawValue >= Stuff.minimumLogLevel.rawValue {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "MM/dd/yyyy HH:mm:ss:SSS"
let process = ProcessInfo.processInfo
let threadId = "?"
let file = URL(string: filename)?.lastPathComponent ?? ""
Swift.print("\n\(level.description()) .\(level) ⏱ \(dateFormatter.string(from: Foundation.Date())) 📱 \(process.processName) [\(process.processIdentifier):\(threadId)] 📂 \(file)(\(line)) ⚙️ \(funcname) ➡️\r\t\(object)")
}
}
}
যা আপনি এটির মতো ব্যবহার করতে পারেন:
Stuff.print("Just as the standard print but now with detailed information")
Stuff.print("Now it's a warning", .warn)
Stuff.print("Or even an error", .error)
Stuff.minimumLogLevel = .error
Stuff.print("Now you won't see normal log output")
Stuff.print("Only errors are shown", .error)
Stuff.minimumLogLevel = .none
Stuff.print("Or if it's disabled you won't see any log", .error)
যার ফলশ্রুতিতে হবে:
✳️ .debug ⏱ 02/13/2017 09:52:51:852 📱 xctest [18960:?] 📂 PrintStuffTests.swift(15) ⚙️ testExample() ➡️
Just as the standard print but now with detailed information
⚠️ .warn ⏱ 02/13/2017 09:52:51:855 📱 xctest [18960:?] 📂 PrintStuffTests.swift(16) ⚙️ testExample() ➡️
Now it's a warning
🚫 .error ⏱ 02/13/2017 09:52:51:855 📱 xctest [18960:?] 📂 PrintStuffTests.swift(17) ⚙️ testExample() ➡️
Or even an error
🚫 .error ⏱ 02/13/2017 09:52:51:855 📱 xctest [18960:?] 📂 PrintStuffTests.swift(21) ⚙️ testExample() ➡️
Only errors are shown
NSLog("Running %@ : %@",NSStringFromClass(self.dynamicType),__FUNCTION__)