|
30 | 30 | # define MAC_OS_X_VERSION_10_12 101200 |
31 | 31 | #endif |
32 | 32 |
|
33 | | -// Needed for pre-10.11 SDK |
34 | 33 | #ifndef NSAppKitVersionNumber10_10 |
35 | 34 | # define NSAppKitVersionNumber10_10 1343 |
36 | 35 | #endif |
37 | 36 | #ifndef NSAppKitVersionNumber10_10_Max |
38 | 37 | # define NSAppKitVersionNumber10_10_Max 1349 |
39 | 38 | #endif |
| 39 | +#ifndef NSAppKitVersionNumber10_12 |
| 40 | +# define NSAppKitVersionNumber10_12 1504 |
| 41 | +#endif |
40 | 42 |
|
41 | 43 | #if MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_12 |
42 | 44 | // Deprecated constants in 10.12 SDK |
|
70 | 72 | # define NSWindowStyleMaskUnifiedTitleAndToolbar NSUnifiedTitleAndToolbarWindowMask |
71 | 73 | #endif |
72 | 74 |
|
| 75 | +#import <asl.h> |
73 | 76 | #if MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_12 |
74 | | -# import <asl.h> |
75 | 77 | # define MM_USE_ASL |
76 | 78 | #else |
77 | 79 | # import <os/log.h> |
@@ -425,9 +427,26 @@ void ASLInit(); |
425 | 427 | # define MM_ASL_LEVEL_DEFAULT OS_LOG_TYPE_DEFAULT |
426 | 428 | # define ASLog(level, fmt, ...) \ |
427 | 429 | if (level <= ASLogLevel) { \ |
428 | | - os_log_with_type(OS_LOG_DEFAULT, level, "%s@%d: %s", \ |
429 | | - __PRETTY_FUNCTION__, __LINE__, \ |
430 | | - [[NSString stringWithFormat:fmt, ##__VA_ARGS__] UTF8String]); \ |
| 430 | + if (floor(NSAppKitVersionNumber) >= NSAppKitVersionNumber10_12) { \ |
| 431 | + os_log_with_type(OS_LOG_DEFAULT, level, "%s@%d: %s", \ |
| 432 | + __PRETTY_FUNCTION__, __LINE__, \ |
| 433 | + [[NSString stringWithFormat:fmt, ##__VA_ARGS__] UTF8String]); \ |
| 434 | + } else { \ |
| 435 | + int logLevel; \ |
| 436 | + switch (level) { \ |
| 437 | + case OS_LOG_TYPE_FAULT: logLevel = ASL_LEVEL_CRIT; break; \ |
| 438 | + case OS_LOG_TYPE_ERROR: logLevel = ASL_LEVEL_ERR; break; \ |
| 439 | + case OS_LOG_TYPE_INFO: logLevel = ASL_LEVEL_INFO; break; \ |
| 440 | + case OS_LOG_TYPE_DEBUG: logLevel = ASL_LEVEL_DEBUG; break; \ |
| 441 | + default: logLevel = ASL_LEVEL_NOTICE; break; \ |
| 442 | + } \ |
| 443 | + _Pragma("clang diagnostic push") \ |
| 444 | + _Pragma("clang diagnostic ignored \"-Wdeprecated-declarations\"") \ |
| 445 | + asl_log(NULL, NULL, logLevel, "%s@%d: %s", \ |
| 446 | + __PRETTY_FUNCTION__, __LINE__, \ |
| 447 | + [[NSString stringWithFormat:fmt, ##__VA_ARGS__] UTF8String]); \ |
| 448 | + _Pragma("clang diagnostic pop") \ |
| 449 | + } \ |
431 | 450 | } |
432 | 451 |
|
433 | 452 | # define ASLogCrit(fmt, ...) ASLog(OS_LOG_TYPE_FAULT, fmt, ##__VA_ARGS__) |
|
0 commit comments