Private
Public Access
1
0
Files
Kordophone/kordophone/Utilities/MBIMLogging.m
2019-01-22 23:31:36 -08:00

45 lines
1.2 KiB
Objective-C

//
// MBIMLogging.m
// kordophoned
//
// Created by James Magahern on 1/22/19.
// Copyright © 2019 James Magahern. All rights reserved.
//
#import "MBIMLogging.h"
#define ESC(inner) "\033[" inner "m"
#define CLR ESC("0")
#define BLD "1;"
#define RED "31;"
extern void __MBIMLogCommon(MBIMLogLevel level, NSString *format, ...)
{
static dispatch_once_t onceToken;
static NSDateFormatter *dateFormatter = nil;
dispatch_once(&onceToken, ^{
dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"Y-MM-d HH:mm:ss";
});
va_list args;
va_start(args, format);
NSString *message = [[NSString alloc] initWithFormat:format arguments:args];
va_end(args);
const char *c_fmt = "%s";
if (level == ML_NOTIFY) {
// BOLD
c_fmt = ESC(BLD) "%s";
} else if (level == ML_ERROR) {
c_fmt = ESC(RED) "%s";
} else if (level == ML_FATAL) {
c_fmt = ESC(BLD RED) "%s";
}
NSString *dateStr = [dateFormatter stringFromDate:[NSDate date]];
fprintf(stdout, "%s: ", [dateStr UTF8String]);
fprintf(stdout, c_fmt, [message UTF8String]);
fprintf(stdout, CLR "\n");
}