2018-05-29 20:17:48 -07:00

62 lines
1.4 KiB
Objective-C

//
// Logger.m
// Moonlight
//
// Created by Diego Waxemberg on 2/10/15.
// Copyright (c) 2015 Moonlight Stream. All rights reserved.
//
#import "Logger.h"
static LogLevel LoggerLogLevel = LOG_I;
void LogTagv(LogLevel level, NSString* tag, NSString* fmt, va_list args);
void Log(LogLevel level, NSString* fmt, ...) {
va_list args;
va_start(args, fmt);
LogTagv(level, NULL, fmt, args);
va_end(args);
}
void LogTag(LogLevel level, NSString* tag, NSString* fmt, ...) {
va_list args;
va_start(args, fmt);
LogTagv(level, tag, fmt, args);
va_end(args);
}
void LogTagv(LogLevel level, NSString* tag, NSString* fmt, va_list args) {
NSString* levelPrefix = @"";
if (level < LoggerLogLevel) {
return;
}
switch(level) {
case LOG_D:
levelPrefix = PRFX_DEBUG;
break;
case LOG_I:
levelPrefix = PRFX_INFO;
break;
case LOG_W:
levelPrefix = PRFX_WARN;
break;
case LOG_E:
levelPrefix = PRFX_ERROR;
break;
default:
levelPrefix = @"";
assert(false);
break;
}
NSString* prefixedString;
if (tag) {
prefixedString = [NSString stringWithFormat:@"%@ (%@) %@", levelPrefix, tag, fmt];
} else {
prefixedString = [NSString stringWithFormat:@"%@ %@", levelPrefix, fmt];
}
NSLogv(prefixedString, args);
}