diff --git a/Logging/SLLogger.h b/Logging/SLLogger.h index 7d59863..a2d0626 100644 --- a/Logging/SLLogger.h +++ b/Logging/SLLogger.h @@ -47,6 +47,21 @@ void SLLog(NSString *format, ...) NS_FORMAT_FUNCTION(1,2); */ void SLLogAsync(NSString *format, ...) NS_FORMAT_FUNCTION(1, 2); +/** + Asynchronously logs a warning message to the testing environment. + + @param format A format string (in the manner of `-[NSString stringWithFormat:]`). + @param ... (Optional) A comma-separated list of arguments to substitute into `format`. + */ +void SLLogWarningAsync(NSString *format, ...) NS_FORMAT_FUNCTION(1, 2); + +/** + Asynchronously logs an error message to the testing environment. + + @param format A format string (in the manner of `-[NSString stringWithFormat:]`). + @param ... (Optional) A comma-separated list of arguments to substitute into `format`. + */ +void SLLogErrorAsync(NSString *format, ...) NS_FORMAT_FUNCTION(1, 2); /** The shared `SLLogger` used by Subliminal to log test progress. It may also be diff --git a/Logging/SLLogger.m b/Logging/SLLogger.m index b04c693..8bdcf0e 100644 --- a/Logging/SLLogger.m +++ b/Logging/SLLogger.m @@ -56,6 +56,28 @@ void SLLogAsync(NSString *format, ...) { }); } +void SLLogWarningAsync(NSString *format, ...) { + va_list args; + va_start(args, format); + NSString *message = [[NSString alloc] initWithFormat:format arguments:args]; + va_end(args); + + dispatch_async([[SLLogger sharedLogger] loggingQueue], ^{ + [[SLLogger sharedLogger] logWarning:message]; + }); +} + +void SLLogErrorAsync(NSString *format, ...) { + va_list args; + va_start(args, format); + NSString *message = [[NSString alloc] initWithFormat:format arguments:args]; + va_end(args); + + dispatch_async([[SLLogger sharedLogger] loggingQueue], ^{ + [[SLLogger sharedLogger] logError:message]; + }); +} + @implementation SLLogger { dispatch_queue_t _loggingQueue; }