// Software License Agreement (BSD License) // // Copyright (c) 2010-2016, Deusty, LLC // All rights reserved. // // Redistribution and use of this software in source and binary forms, // with or without modification, are permitted provided that the following conditions are met: // // *Redistributions of source code must retain the above copyright notice, // this list of conditions and the following disclaimer. // // *Neither the name of Deusty nor the names of its contributors may be used // to endorse or promote products derived from this software without specific // prior written permission of Deusty, LLC. #import // Disable legacy macros #ifndef OBSDD_LEGACY_MACROS #define OBSDD_LEGACY_MACROS 0 #endif #import "OBSDDLog.h" /** *This class provides a log formatter that filters log statements from a logging context not on the whitelist. * *A log formatter can be added to any logger to format and/or filter its output. *You can learn more about log formatters here: *Documentation/CustomFormatters.md * *You can learn more about logging context's here: *Documentation/CustomContext.md * *But here's a quick overview / refresher: * *Every log statement has a logging context. *These come from the underlying logging macros defined in OBSDDLog.h. *The default logging context is zero. *You can define multiple logging context's for use in your application. *For example, logically separate parts of your app each have a different logging context. *Also 3rd party frameworks that make use of Lumberjack generally use their own dedicated logging context. **/ @interface OBSDDContextWhitelistFilterLogFormatter : NSObject /** * Designated default initializer */ - (instancetype)init NS_DESIGNATED_INITIALIZER; /** * Add a context to the whitelist * * @param loggingContext the context */ - (void)addToWhitelist:(NSUInteger)loggingContext; /** * Remove context from whitelist * * @param loggingContext the context */ - (void)removeFromWhitelist:(NSUInteger)loggingContext; /** * Return the whitelist */ @property (readonly, copy) NSArray *whitelist; /** * Check if a context is on the whitelist * * @param loggingContext the context */ - (BOOL)isOnWhitelist:(NSUInteger)loggingContext; @end //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #pragma mark - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** *This class provides a log formatter that filters log statements from a logging context on the blacklist. **/ @interface OBSDDContextBlacklistFilterLogFormatter : NSObject - (instancetype)init NS_DESIGNATED_INITIALIZER; /** * Add a context to the blacklist * * @param loggingContext the context */ - (void)addToBlacklist:(NSUInteger)loggingContext; /** * Remove context from blacklist * * @param loggingContext the context */ - (void)removeFromBlacklist:(NSUInteger)loggingContext; /** * Return the blacklist */ @property (readonly, copy) NSArray *blacklist; /** * Check if a context is on the blacklist * * @param loggingContext the context */ - (BOOL)isOnBlacklist:(NSUInteger)loggingContext; @end