I am trying to rewrite my logging class and I would like to know how to substitute PRETTY_FUNCTION or NSStringFromSelector(_cmd) in a swift file in order to track the method calls?
Check out a new library I've just published: https://github.com/DaveWoodCom/XCGLogger
It's a debug logging library for Swift.
The key to being able to use the #function
macros, is to set them as default values to your logging function. The compiler will then fill them in using the expected values.
func log(logMessage: String, functionName: String = #function) {
print("\(functionName): \(logMessage)")
}
Then just call:
log("my message")
And it works as expected giving you something like:
whateverFunction(): my message
More info on how this works: https://www.cerebralgardens.com/blog/entry/2014/06/09/the-first-essential-swift-3rd-party-library-to-include-in-your-project