+static Class NSCalendarDateClass = Nil;
+static Class NSProcessInfoClass = Nil;
+static unsigned char *processName = NULL;
+
+static char *monthNames[14] = {
+ "Dec",
+ "Jan", "Feb", "Mar", "Apr", "May", "Jun",
+ "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
+ "Jan"
+};
+
++ (void)initialize {
+ if (NSCalendarDateClass == Nil)
+ NSCalendarDateClass = [NSCalendarDate class];
+ if (NSProcessInfoClass == Nil)
+ NSProcessInfoClass = [NSProcessInfo class];
+
+ if (processName == NULL) {
+ /* process name can't change, right? */
+ unsigned len;
+ NSString *pn;
+
+ pn = [[NSProcessInfoClass processInfo] processName];
+ len = [pn cStringLength];
+
+ processName = malloc(len + 4);
+ [pn getCString:processName];
+ }
+}
+
+static __inline__ unsigned char * levelPrefixForEvent(NGLogEvent *_event) {
+ switch ([_event level]) {
+ case NGLogLevelWarn: return "[WARN]";
+ case NGLogLevelError: return "[ERROR]";
+ case NGLogLevelFatal: return "[FATAL]";
+ default: return "";
+ }
+}
+