Az NSLog változók értékeinek kiírására szolgál a konzolra. Elsősorban az alkalmazás debuggolására használják.
A @"…" … részén megadjuk a kiírni kívánt szövegrészt.
Jelölésére a %@ jel szolgál.
Az int, long jelölésére %i, míg a float, double jelölésére a %f szolgál. A float típusnál ki lehet kötni, hogy csak a 2 decimális helyérték jelenjen meg: %.2f -el. A double típus reprezentálható a %e ,%E jelekkel is, ezekben az esetekben az exponenciális forma jelenik meg.
Ebben az esetben a %@ jelet kell beírni a jelölésére, mivel az NSString is egy objektum. Habár a %s a C stílusú printf-ben működik, ez esetben nem megfelelő NSStringek kiírására.
Szintén a %@ jellel jelölve kiírható az NSArray, NSDate, NSInteger, NSDictionary objektum tartalma.
Az NSLog ebben az esetben úgy működik, hogy kér minden objektumtól egy magát leíró stringet és elküldi az objektumoknak a –description metódust. Amennyiben az adott osztály nem írja felül ezt a metódust, úgy az NSObject –description metódusnak megfelelően fog kiíródni, amely az alábbi formátumú: <classname : address>
NSArray
A tomb tartalma ( Me, Myself, I, "and you" )
NSDate
NSInteger
NSDictionary
Eredmény: 2009-07-29 15:42:34.634 DataTypes[560:10b] key: key1, value: How 2009-07-29 15:42:34.636 DataTypes[560:10b] key: key2, value: are 2009-07-29 15:42:34.639 DataTypes[560:10b] key: key3, value: you
Hexadecimális értékek kiíírása: %x, %X
Előjel nélküli int kiírása: %u Hatod számrendszerbeli szám kiírása: %o Pointer kiírása: %p C string kiírása (bytes): %s C string kiírása (unichar): %S Karakter kiírása: %c Unichar kiírása: %C Pascal string kiírása: %.s (további két argumentum szükséges: pass pstr[0], pstr+1)
További információért: man 3 printf. Az NSLog megért mindenféle printf formátumú azonosítót.
NSLog alternatívákAz egyik alternatíva, ha túl bőnek találjuk a headert, illetve ha szeretnénk tudni mennyi idő telt el az előző logolás óta.
Bővebb információ: http://cocoadev.com/wiki/XLog
LibComponentLogging egy kicsi osztálykönyvtár Mac OS X és iPhone OS Objective-C alkalmazások számára, amely naplózási szinteket nyújt a különböző napló komponensek azonosítására az alkalmazáson belül. Továbbá van egy aktív naplózási szint minden napló komponensre annak érdekében, hogy engedélyezve/tiltva legyenek a naplózások az alkalmazás bizonyos részein. Ezen felül különböző naplózási háttérprogramok érhetők el, például a naplóüzenetek elküldése az Apple System Log létesítménynek (ASL).
Bővebb információ: http://codebeach.org/code/show/44
NSLogger egy nagy teljesítményű naplózó program, amely megjeleníti a Mac OS X or iOS (iPhone OS) – en futtatott kliens által kibocsájtott traceket. Felváltja a megszokott NSLog() alapú traceket és hatékony kiegészítéseket nyújt, például: kijelző szűrés, kép és bináris naplózás, trace pufferelés, időmérési információk, stb. A fenti LibComponentLogging – nak van egy backendje, amellyel el tudja küldeni az NSLoggernek a naplóit.
Bővebb információ: https://github.com/fpillet/NSLogger