Inherits from DDAbstractLogger : NSObject
Conforms to DDLogger
Declared in DDTTYLogger.h

Overview

Welcome to Cocoa Lumberjack!

The project page has a wealth of documentation if you have any questions. https://github.com/robbiehanson/CocoaLumberjack

If you’re new to the project you may wish to read the “Getting Started” wiki. https://github.com/robbiehanson/CocoaLumberjack/wiki/GettingStarted

This class provides a logger for Terminal output or Xcode console output, depending on where you are running your code.

As described in the “Getting Started” page, the traditional NSLog() function directs it’s output to two places:

  • Apple System Log (so it shows up in Console.app)
  • StdErr (if stderr is a TTY, so log statements show up in Xcode console)

To duplicate NSLog() functionality you can simply add this logger and an asl logger. However, if you instead choose to use file logging (for faster performance), you may choose to use only a file logger and a tty logger.

Tasks

Properties

colorsEnabled

Want to use different colors for different log levels? Enable this property.

@property (readwrite, assign) BOOL colorsEnabled

Discussion

Want to use different colors for different log levels? Enable this property.

If you run the application via the Terminal (not Xcode), the logger will map colors to xterm-256color or xterm-color (if available).

Xcode does NOT natively support colors in the Xcode debugging console. You’ll need to install the XcodeColors plugin to see colors in the Xcode console. https://github.com/robbiehanson/XcodeColors

The default value if NO.

Declared In

DDTTYLogger.h

Instance Methods

clearColorsForFlag:

Clearing color profiles.

- (void)clearColorsForFlag:(int)mask

Discussion

Clearing color profiles.

Declared In

DDTTYLogger.h

setForegroundColor:backgroundColor:forFlag:

The default color set (foregroundColor, backgroundColor) is:

- (void)setForegroundColor:(UIColor *)txtColor backgroundColor:(UIColor *)bgColor forFlag:(int)mask

Discussion

The default color set (foregroundColor, backgroundColor) is:

  • LOG_FLAG_ERROR = (red, nil)
  • LOG_FLAG_WARN = (orange, nil)

You can customize the colors however you see fit. Please note that you are passing a flag, NOT a level.

GOOD : [ttyLogger setForegroundColor:pink backgroundColor:nil forFlag:LOG_FLAG_INFO]; // <- Good :) BAD : [ttyLogger setForegroundColor:pink backgroundColor:nil forFlag:LOG_LEVEL_INFO]; // <- BAD! :(

LOG_FLAG_INFO = 0…00100 LOG_LEVEL_INFO = 0…00111 <- Would match LOG_FLAG_INFO and LOG_FLAG_WARN and LOG_FLAG_ERROR

If you run the application within Xcode, then the XcodeColors plugin is required.

If you run the application from a shell, then DDTTYLogger will automatically map the given color to the closest available color. (xterm-256color or xterm-color which have 256 and 16 supported colors respectively.)

This method invokes setForegroundColor:backgroundColor:forFlag:context: and passes the default context (0).

Declared In

DDTTYLogger.h

setForegroundColor:backgroundColor:forFlag:context:

Just like setForegroundColor:backgroundColor:flag, but allows you to specify a particular logging context.

- (void)setForegroundColor:(UIColor *)txtColor backgroundColor:(UIColor *)bgColor forFlag:(int)mask context:(int)ctxt

Discussion

Just like setForegroundColor:backgroundColor:flag, but allows you to specify a particular logging context.

A logging context is often used to identify log messages coming from a 3rd party framework, although logging context’s can be used for many different functions.

Logging context’s are explained in further detail here: https://github.com/robbiehanson/CocoaLumberjack/wiki/CustomContext

Declared In

DDTTYLogger.h

setForegroundColor:backgroundColor:forTag:

Similar to the methods above, but allows you to map DDLogMessage->tag to a particular color profile. For example, you could do something like this:

- (void)setForegroundColor:(UIColor *)txtColor backgroundColor:(UIColor *)bgColor forTag:(id<NSCopying>)tag

Discussion

Similar to the methods above, but allows you to map DDLogMessage->tag to a particular color profile. For example, you could do something like this:

static NSString *const PurpleTag = @“PurpleTag”;

define DDLogPurple(frmt, …) LOG_OBJC_TAG_MACRO(NO, 0, 0, 0, PurpleTag, frmt, ##VA_ARGS)

And then in your applicationDidFinishLaunching, or wherever you configure Lumberjack:

if TARGET_OS_IPHONE

UIColor *purple = [UIColor colorWithRed:(64/255.0) green:(0/255.0) blue:(128/255.0) alpha:1.0];

else

NSColor *purple = [NSColor colorWithCalibratedRed:(64/255.0) green:(0/255.0) blue:(128/255.0) alpha:1.0];

[[DDTTYLogger sharedInstance] setForegroundColor:purple backgroundColor:nil forTag:PurpleTag]; [DDLog addLogger:[DDTTYLogger sharedInstance]];

This would essentially give you a straight NSLog replacement that prints in purple:

DDLogPurple(@“I’m a purple log message!”);

Declared In

DDTTYLogger.h