#import #import "DDLog.h" @class DDLogFileInfo; /** * Welcome to Cocoa Lumberjack! * * The project page has a wealth of documentation if you have any questions. * https://github.com/CocoaLumberjack/CocoaLumberjack * * If you're new to the project you may wish to read the "Getting Started" wiki. * https://github.com/CocoaLumberjack/CocoaLumberjack/wiki/GettingStarted * * * This class provides a logger to write log statements to a file. **/ // Default configuration and safety/sanity values. // // maximumFileSize -> DEFAULT_LOG_MAX_FILE_SIZE // rollingFrequency -> DEFAULT_LOG_ROLLING_FREQUENCY // maximumNumberOfLogFiles -> DEFAULT_LOG_MAX_NUM_LOG_FILES // // You should carefully consider the proper configuration values for your application. #define DEFAULT_LOG_MAX_FILE_SIZE (1024 * 1024) // 1 MB #define DEFAULT_LOG_ROLLING_FREQUENCY (60 * 60 * 24) // 24 Hours #define DEFAULT_LOG_MAX_NUM_LOG_FILES (5) // 5 Files //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #pragma mark - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // The LogFileManager protocol is designed to allow you to control all aspects of your log files. // // The primary purpose of this is to allow you to do something with the log files after they have been rolled. // Perhaps you want to compress them to save disk space. // Perhaps you want to upload them to an FTP server. // Perhaps you want to run some analytics on the file. // // A default LogFileManager is, of course, provided. // The default LogFileManager simply deletes old log files according to the maximumNumberOfLogFiles property. // // This protocol provides various methods to fetch the list of log files. // // There are two variants: sorted and unsorted. // If sorting is not necessary, the unsorted variant is obviously faster. // The sorted variant will return an array sorted by when the log files were created, // with the most recently created log file at index 0, and the oldest log file at the end of the array. // // You can fetch only the log file paths (full path including name), log file names (name only), // or an array of DDLogFileInfo objects. // The DDLogFileInfo class is documented below, and provides a handy wrapper that // gives you easy access to various file attributes such as the creation date or the file size. @protocol DDLogFileManager @required // Public properties /** * The maximum number of archived log files to keep on disk. * For example, if this property is set to 3, * then the LogFileManager will only keep 3 archived log files (plus the current active log file) on disk. * Once the active log file is rolled/archived, then the oldest of the existing 3 rolled/archived log files is deleted. * * You may optionally disable deleting old/rolled/archived log files by setting this property to zero. **/ @property (readwrite, assign) NSUInteger maximumNumberOfLogFiles; // Public methods - (NSString *)logsDirectory; - (NSArray *)unsortedLogFilePaths; - (NSArray *)unsortedLogFileNames; - (NSArray *)unsortedLogFileInfos; - (NSArray *)sortedLogFilePaths; - (NSArray *)sortedLogFileNames; - (NSArray *)sortedLogFileInfos; // Private methods (only to be used by DDFileLogger) - (NSString *)createNewLogFile; @optional // Notifications from DDFileLogger - (void)didArchiveLogFile:(NSString *)logFilePath; - (void)didRollAndArchiveLogFile:(NSString *)logFilePath; @end //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #pragma mark - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** * Default log file manager. * * All log files are placed inside the logsDirectory. * If a specific logsDirectory isn't specified, the default directory is used. * On Mac, this is in ~/Library/Logs/. * On iPhone, this is in ~/Library/Caches/Logs. * * Log files are named "