Datei-Logging mit NSLog - 2. Datei-Logging-Funktion erstellen |
|
|
|
Geschrieben von: Philipp
|
THURSDAY, 13 MARCH 2008 00:55 |
Seite 3 von 4
2. Datei-Logging-Funktion erstellen
Ok, kommen wir zum eigentlichen Thema.
Um in eine Datei zu loggen, sollten wir ersteinmal festlegen wo die Datei liegt und wie diese heißen soll:
#define KLOGGING_PATH @"/private/var/mobile/Library/ApplicationName"
#define KLOGGING_FILE @"debug.log"
Nun eine Funktion, welche die gleichen Parameter hat wie NSLog()und dann selber diese in usere Logging Datei schreibt und zusätzlich nocheinmal NSLog() aufruft.
void FileLog(NSString *format, ...)
{
va_list ap;
NSString *print;
va_start(ap,format);
print=[[NSString alloc] initWithFormat:format arguments:ap];
va_end(ap);
// create directory
[[NSFileManager defaultManager] createDirectoryAtPath:KLOGGING_PATH attributes:nil];
// open file and create if not exist
FILE *f = fopen([NSString stringWithFormat:@"%@/%@", KLOGGING_PATH, KLOGGING_FILE], "a");
// write to file
fprintf(f, "%s: %s\r\n", [[[NSDate date] description] UTF8String], [print UTF8String]);
fclose(f);
// write to console
NSLog(print);
[print release];
}
Innerhalb der Funktion machen wir also nichts anderes, als erst alle Parameter zu lesen, dann das Logging-Verzeichnis zu erstellen (falls es noch nicht existiert), die Logging-Datei in dem Logging-Verzeichnis zu erstellen , aber auch nur falls sie noch nicht existiert und zu guter letzt die tatsächliche Meldung mit dem aktuellen Datum in die Datei schreiben.
Achso, das Loggen auf Konsole erledigen wir dann natürlich auch noch.
|
LAST_UPDATED2 |
werde ich mal bei mir einbauen.
mfg hpm