Skip to content

Commit

Permalink
Fix bug where new log messages didn't display with the correct date.
Browse files Browse the repository at this point in the history
  • Loading branch information
Michael Gorbach committed Nov 29, 2010
1 parent 0d62f00 commit d5ae879
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 47 deletions.
6 changes: 3 additions & 3 deletions MFLogReader.m
Original file line number Diff line number Diff line change
Expand Up @@ -59,11 +59,11 @@ - (void)readEntriesFromASL {
asl_set_query(q, ASL_KEY_FACILITY, MF_ASL_SERVICE_NAME, ASL_QUERY_OP_EQUAL);

aslresponse r = asl_search(NULL, q);
NSMutableArray* logMessagesToAdd = [NSMutableArray array];
NSMutableArray *logMessagesToAdd = [NSMutableArray array];

while (NULL != (m = aslresponse_next(r))) {
NSDictionary* dict = dictFromASLMessage(m);
[logMessagesToAdd addObject: dict];
NSDictionary *dict = dictFromASLMessage(m);
[logMessagesToAdd addObject:dict];
}

aslresponse_free(r);
Expand Down
87 changes: 43 additions & 44 deletions MFLogging.m
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@

// Print to logging system
void MFLog(NSString *format, ...) {
MFLogging* logger = [MFLogging sharedLogging];
MFLogging *logger = [MFLogging sharedLogging];

// get a reference to the arguments on the stack that follow
// the format paramter
Expand All @@ -35,15 +35,14 @@ void MFLog(NSString *format, ...) {
// NSString luckily provides us with this handy method which
// will do all the work for us, including %@
NSString *string;
string = [[NSString alloc] initWithFormat: format
arguments: argList];
va_end (argList);
[logger logMessage:string ofType:0 object: nil sender:@"MFCORE"];
string = [[NSString alloc] initWithFormat:format arguments:argList];
va_end (argList);
[logger logMessage:string ofType:0 object:nil sender:@"MFCORE"];
}


void MFLogP(int type, NSString *format, ...) {
MFLogging* logger = [MFLogging sharedLogging];
MFLogging *logger = [MFLogging sharedLogging];

// get a reference to the arguments on the stack that follow
// the format paramter
Expand All @@ -52,15 +51,12 @@ void MFLogP(int type, NSString *format, ...) {

// NSString luckily provides us with this handy method which
// will do all the work for us, including %@
NSString *string;
string = [[NSString alloc] initWithFormat: format
arguments: argList];
va_end (argList);
NSString *string = [[NSString alloc] initWithFormat:format arguments: argList];
va_end(argList);
[logger logMessage:string ofType:type object: nil sender:nil];
}

void MFLogS(id sender, NSString *format, ...)
{
void MFLogS(id sender, NSString *format, ...) {
MFLogging *logger = [MFLogging sharedLogging];

// get a reference to the arguments on the stack that follow
Expand All @@ -70,10 +66,9 @@ void MFLogS(id sender, NSString *format, ...)

// NSString luckily provides us with this handy method which
// will do all the work for us, including %@
NSString *string;
string = [[NSString alloc] initWithFormat: format arguments: argList];
NSString *string = [[NSString alloc] initWithFormat: format arguments: argList];
va_end (argList);
[logger logMessage:string ofType:0 object: nil sender:sender];
[logger logMessage:string ofType:0 object:nil sender:sender];
}

void MFLogSO(id sender, id object, NSString *format, ...) {
Expand All @@ -86,14 +81,13 @@ void MFLogSO(id sender, id object, NSString *format, ...) {

// NSString luckily provides us with this handy method which
// will do all the work for us, including %@
NSString *string;
string = [[NSString alloc] initWithFormat: format arguments: argList];
va_end (argList);
NSString *string = [[NSString alloc] initWithFormat:format arguments:argList];
va_end (argList);
[logger logMessage:string ofType:0 object:object sender:sender];
}

// Print directly to console
void MFPrint(NSString* format, ...) {
void MFPrint(NSString *format, ...) {
// get a reference to the arguments on the stack that follow
// the format paramter
va_list argList;
Expand All @@ -102,8 +96,7 @@ void MFPrint(NSString* format, ...) {
// NSString luckily provides us with this handy method which
// will do all the work for us, including %@
NSString *string;
string = [[NSString alloc] initWithFormat: format
arguments: argList];
string = [[NSString alloc] initWithFormat:format arguments:argList];
va_end (argList);
printf("%s\n", [string cStringUsingEncoding:NSASCIIStringEncoding]);
}
Expand Down Expand Up @@ -158,12 +151,15 @@ - (void)setupLogFile {
const char *val;
for (i = 0; (NULL != (key = asl_key(m, i))); i++) {
val = asl_get(m, key);
if (key && val)
[messageDict setObject: [[NSString alloc] initWithUTF8String: val]
forKey: [[NSString alloc] initWithUTF8String: key]];
if (key && val) {
[messageDict setObject:[[NSString alloc] initWithUTF8String:val]
forKey:[[NSString alloc] initWithUTF8String:key]];
}
}


if (![messageDict objectForKey:kMFLogKeyTime]) {
[messageDict setObject:[NSNumber numberWithInt:[[NSDate date] timeIntervalSince1970]] forKey:kMFLogKeyTime];
}
return [messageDict copy];
}

Expand All @@ -174,12 +170,12 @@ - (NSDateFormatter*)formatter {
NSString *headerStringForASLMessageDict(NSDictionary *messageDict) {
MFLogging *self = [MFLogging sharedLogging];
NSMutableArray* headerList = [NSMutableArray array];
NSString *sender = [messageDict objectForKey: kMFLogKeySender];
NSString *uuid = [messageDict objectForKey: kMFLogKeyUUID];
NSString *subsystem = [messageDict objectForKey: kMFLogKeySubsystem];
NSString *uuidFSName = uuid ? [[[self delegate] filesystemWithUUID: uuid] name] : nil;
NSDate *time = [NSDate dateWithTimeIntervalSince1970: [[messageDict objectForKey: kMFLogKeyTime] intValue]];;
NSString *formattedDate = [[self formatter] stringFromDate: time];
NSString *sender = [messageDict objectForKey:kMFLogKeySender];
NSString *uuid = [messageDict objectForKey:kMFLogKeyUUID];
NSString *subsystem = [messageDict objectForKey:kMFLogKeySubsystem];
NSString *uuidFSName = uuid ? [[[self delegate] filesystemWithUUID:uuid] name] : nil;
NSDate *date = [NSDate dateWithTimeIntervalSince1970:[[messageDict objectForKey:kMFLogKeyTime] intValue]];;
NSString *formattedDate = [[self formatter] stringFromDate:date];

if (sender) {
[headerList addObject:sender];
Expand Down Expand Up @@ -208,7 +204,7 @@ - (void)sendASLMessageDictOverDO:(NSDictionary*)messageDict {
(id<MFServerProtocol>)[NSConnection rootProxyForConnectionWithRegisteredName:kMFDistributedObjectName host:nil];

if (server) {
[server sendASLMessageDict: messageDict];
[server sendASLMessageDict:messageDict];
}
}

Expand All @@ -218,20 +214,23 @@ - (void)logMessage:(NSString*)message ofType:(NSInteger)type object:(id)object s
}


message = [message stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]];
aslmsg m = asl_new(ASL_TYPE_MSG);
asl_set(m, ASL_KEY_FACILITY, MF_ASL_SERVICE_NAME);
if ([sender isKindOfClass: [MFFilesystem class]])
asl_set(m, ASL_KEY_UUID, [[(MFFilesystem*)sender uuid] UTF8String]);
if ([object isKindOfClass: [MFFilesystem class]])
asl_set(m, ASL_KEY_UUID, [[(MFFilesystem*)object uuid] UTF8String]);
asl_set(m, ASL_KEY_SUBSYSTEM, [[[sender class] description] UTF8String]);
asl_set(m, ASL_KEY_MSG, [message UTF8String]);
asl_log(aslClient, m, ASL_LEVEL_ERR, "%s", [message UTF8String]);
message = [message stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
aslmsg newASLMessage = asl_new(ASL_TYPE_MSG);
asl_set(newASLMessage, ASL_KEY_FACILITY, MF_ASL_SERVICE_NAME);
if ([sender isKindOfClass: [MFFilesystem class]]) {
asl_set(newASLMessage, ASL_KEY_UUID, [[(MFFilesystem*)sender uuid] UTF8String]);
}
if ([object isKindOfClass: [MFFilesystem class]]) {
asl_set(newASLMessage, ASL_KEY_UUID, [[(MFFilesystem*)object uuid] UTF8String]);
}
asl_set(newASLMessage, ASL_KEY_SUBSYSTEM, [[[sender class] description] UTF8String]);
asl_set(newASLMessage, ASL_KEY_MSG, [message UTF8String]);
asl_log(aslClient, newASLMessage, ASL_LEVEL_ERR, "%s", [message UTF8String]);

// Send to other macfusion system processes over DO
NSDictionary* messageDict = dictFromASLMessage(m);
[self sendASLMessageDictOverDO: messageDict];
NSDictionary *messageDict = dictFromASLMessage(newASLMessage);
asl_free(newASLMessage);
[self sendASLMessageDictOverDO:messageDict];
}


Expand Down

0 comments on commit d5ae879

Please sign in to comment.