FLEXSystemLogMessage.m 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. //
  2. // FLEXSystemLogMessage.m
  3. // UICatalog
  4. //
  5. // Created by Ryan Olson on 1/25/15.
  6. // Copyright (c) 2015 f. All rights reserved.
  7. //
  8. #import "FLEXSystemLogMessage.h"
  9. @implementation FLEXSystemLogMessage
  10. +(instancetype)logMessageFromASLMessage:(aslmsg)aslMessage
  11. {
  12. FLEXSystemLogMessage *logMessage = [[FLEXSystemLogMessage alloc] init];
  13. const char *timestamp = asl_get(aslMessage, ASL_KEY_TIME);
  14. if (timestamp) {
  15. NSTimeInterval timeInterval = [@(timestamp) integerValue];
  16. const char *nanoseconds = asl_get(aslMessage, ASL_KEY_TIME_NSEC);
  17. if (nanoseconds) {
  18. timeInterval += [@(nanoseconds) doubleValue] / NSEC_PER_SEC;
  19. }
  20. logMessage.date = [NSDate dateWithTimeIntervalSince1970:timeInterval];
  21. }
  22. const char *sender = asl_get(aslMessage, ASL_KEY_SENDER);
  23. if (sender) {
  24. logMessage.sender = @(sender);
  25. }
  26. const char *messageText = asl_get(aslMessage, ASL_KEY_MSG);
  27. if (messageText) {
  28. logMessage.messageText = @(messageText);
  29. }
  30. const char *messageID = asl_get(aslMessage, ASL_KEY_MSG_ID);
  31. if (messageID) {
  32. logMessage.messageID = [@(messageID) longLongValue];
  33. }
  34. return logMessage;
  35. }
  36. - (BOOL)isEqual:(id)object
  37. {
  38. return [object isKindOfClass:[FLEXSystemLogMessage class]] && self.messageID == [object messageID];
  39. }
  40. - (NSUInteger)hash
  41. {
  42. return (NSUInteger)self.messageID;
  43. }
  44. @end