DDTTYLogger Class Reference
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
-
colorsEnabled
Want to use different colors for different log levels? Enable this property.
property -
– setForegroundColor:backgroundColor:forFlag:
The default color set (foregroundColor, backgroundColor) is:
-
– setForegroundColor:backgroundColor:forFlag:context:
Just like setForegroundColor:backgroundColor:flag, but allows you to specify a particular logging context.
-
– 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:
-
– clearColorsForFlag:
Clearing color profiles.
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