//============================================================================== // This file is part of Master Password. // Copyright (c) 2011-2017, Maarten Billemont. // // Master Password is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // Master Password is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You can find a copy of the GNU General Public License in the // LICENSE file. Alternatively, see . //============================================================================== #define MP_LIBS_BEGIN \ _Pragma("clang diagnostic push") \ _Pragma("clang diagnostic ignored \"-Weverything\"") #define MP_LIBS_END \ _Pragma("clang diagnostic pop") MP_LIBS_BEGIN #include #include #include MP_LIBS_END #define mpw_log_os(level, file, line, function, format, ...) \ do { \ if (mpw_verbosity < level) { \ break; \ } \ \ switch (level) { \ case LogLevelTrace: \ os_log_debug( OS_LOG_DEFAULT, "%30s:%-3ld TRC | " format, basename( (char *)file ), line, ##__VA_ARGS__ ); \ break; \ case LogLevelDebug: \ os_log_debug( OS_LOG_DEFAULT, "%30s:%-3ld DBG | " format, basename( (char *)file ), line, ##__VA_ARGS__ ); \ break; \ case LogLevelInfo: \ os_log_info( OS_LOG_DEFAULT, "%30s:%-3ld INF | " format, basename( (char *)file ), line, ##__VA_ARGS__ ); \ break; \ case LogLevelWarning: \ os_log( OS_LOG_DEFAULT, "%30s:%-3ld WRN | " format, basename( (char *)file ), line, ##__VA_ARGS__ ); \ break; \ case LogLevelError: \ os_log_error( OS_LOG_DEFAULT, "%30s:%-3ld ERR | " format, basename( (char *)file ), line, ##__VA_ARGS__ ); \ break; \ case LogLevelFatal: \ os_log_fault( OS_LOG_DEFAULT, "%30s:%-3ld FTL | " format, basename( (char *)file ), line, ##__VA_ARGS__ ); \ break; \ } \ \ mpw_log_sink( level, file, line, function, format, ##__VA_ARGS__ ); \ } while (0) #ifdef __OBJC__ #import "Pearl-Prefix.pch" #define MPW_LOG(level, file, line, function, format, ...) mpw_log_os(level, file, line, function, strf(format, ##__VA_ARGS__)) #if TARGET_OS_IOS #import "MPTypes.h" #import "MPiOSConfig.h" #elif TARGET_OS_OSX #import "MPTypes.h" #import "MPMacConfig.h" #endif #else #define MPW_LOG mpw_log_os #endif #include "mpw-util.h"