Why print() in Swift does not log the time stamp as NSLog in objective C

Mahmoud Adam picture Mahmoud Adam · Oct 27, 2015 · Viewed 19.4k times · Source

From background of Objective C when I use NSLog() it prefixes the text with the date time stamp, but when I use print() on Swift it only prints the text

So it there is a way to make it print the time stamp as well, or am I doing some thing wrong?

Answer

Hermann Klecker picture Hermann Klecker · Oct 27, 2015

Because print is not NSLog. It is as simple as that.

NSLog is a logging tool in Foundation that writes to the Apple System Log facility which appears on the console.

print(…) is a print function in the Swift Standard Library that writes to standard out, which appears on the console in debug sessions.

You could add Date() to your print parameter to print the current time and date. (Or Date().description(with: Locale.current) to get it in your local time zone.)

Or you could just use NSLog which is available in Swift too (if you import Foundation).