Files
i2p.i2p/launchers/macosx/I2PLauncher/logger_c.h

89 lines
1.6 KiB
C

//
// logger_c.h
// I2PLauncher
//
// Created by Mikal Villa on 30/09/2018.
// Copyright © 2018 The I2P Project. All rights reserved.
//
#ifndef logger_c_h
#define logger_c_h
#include "Logger.h"
#include "LoggerWorker.hpp"
/*
void genericLogger(int loglevel, va_list params) {
#ifdef __cplusplus
const char * paramArray[10];
int numParams = 0;
NSString* arg = nil;
while ((arg = va_arg(params, NSString *))) {
paramArray[numParams++] = [arg cStringUsingEncoding:[NSString defaultCStringEncoding]];
}
switch (loglevel) {
case 0:
MLOGF(ANNOYING) << params;
break;
case 1:
MLOGF(DEBUG) << params;
break;
case 2:
MLOGF(INFO) << params;
break;
case 3:
MLOGF(WARN) << params;
break;
default:
assert(false);
}
#endif
}
*/
inline void MLog(int loglevel, NSString* format, ...)
{
#ifdef __cplusplus
va_list vargs;
va_start(vargs, format);
NSString* formattedMessage = [[NSString alloc] initWithFormat:format arguments:vargs];
va_end(vargs);
NSString* message = formattedMessage;
switch (loglevel) {
case 0:
MLOG(ANNOYING) << [message UTF8String];
break;
case 1:
MLOG(DEBUG) << [message UTF8String];
break;
case 2:
MLOG(INFO) << [message UTF8String];
break;
case 3:
MLOG(WARN) << [message UTF8String];
break;
case 4:
MLOG(ERROR) << [message UTF8String];
break;
default:
#if DEBUG
assert(false);
#else
return;
#endif
}
#endif
}
#define MMLog(format_string,...) ((MLog(1, [NSString stringWithFormat:format_string,##__VA_ARGS__])))
#endif /* logger_c_h */