2009-09-26 5 views
14

Ich schreibe meinen ersten Ziel-c-Daemon-Typ-Prozess, der im Hintergrund arbeitet. Alles, was es tut, muss ordnungsgemäß protokolliert werden.objective-c protokollierende Best Practices

Ich bin ziemlich neu in Sachen Apple, also bin ich mir nicht sicher, was ist die gängigste und/oder beste Möglichkeit, Aktivitäten zu protokollieren? Meldet sich jeder einfach in einer Textdatei in seinem eigenen speziellen Format oder benutzt er einen Systemaufruf?

Antwort

15

Sie sollten sich die Apple System Logger ansehen. ASL schreibt in die Systemprotokolldatenbank (wodurch das Abrufen des Protokolls von Console.app oder von Ihrer eigenen App aus erleichtert wird) und zusätzlich zu einer oder mehreren flachen Dateien (falls Sie dies wünschen). Peter Hoseys introduction an die ASL ist die beste, die ich kenne. ASL ist eine C-Level-API, aber es ist relativ einfach, sie in Objective-C einzubinden, wenn Sie möchten. Ich würde empfehlen, auch einen Blick auf Google's Toolbox for Mac zu werfen. Unter vielen anderen Leckereien enthält es eine GTMLogger Einrichtung, die ASL-Unterstützung enthält. Ich habe meinen ASL-Wrapper zugunsten der GTMLogger aufgegeben.

+0

Danke für den Link zu Google Toolbox für Mac. Google hat einige wirklich schöne Projekte in Google Code! – Jesper

0

Eine weitere Alternative, die Sie ausprobieren möchten, ist https://github.com/CocoaLumberjack. Lumberjack ist sehr flexibel und ermöglicht es Ihnen, sich an verschiedenen Zielen zu loggen, Protokollebenen zu konfigurieren, usw. Es ist sehr log4j/log4net wie, wenn Sie damit vertraut sind.

Es gibt auch Berichte, dass es schneller als ASL ist ... Ich weiß nicht, wie es mit GTMLogger in Bezug auf Funktionalität oder Geschwindigkeit vergleicht, aber die Dokumentation scheint ein bisschen zugänglicher zu sein.