forked from I2P_Developers/i2p.i2p
Mac OSX Launcher: C api of the logger to become available for Swift/Objective-C
This commit is contained in:
91
launchers/macosx/I2PLauncher/logger_c.h
Normal file
91
launchers/macosx/I2PLauncher/logger_c.h
Normal file
@ -0,0 +1,91 @@
|
||||
//
|
||||
// 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
|
||||
}
|
||||
*/
|
||||
|
||||
void MLog(int loglevel, NSString* format, ...)
|
||||
{
|
||||
#ifdef __cplusplus
|
||||
static NSDateFormatter* timeStampFormat;
|
||||
if (!timeStampFormat) {
|
||||
timeStampFormat = [[NSDateFormatter alloc] init];
|
||||
[timeStampFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss.SSS"];
|
||||
[timeStampFormat setTimeZone:[NSTimeZone systemTimeZone]];
|
||||
}
|
||||
|
||||
NSString* timestamp = [timeStampFormat stringFromDate:[NSDate date]];
|
||||
|
||||
va_list vargs;
|
||||
va_start(vargs, format);
|
||||
NSString* formattedMessage = [[NSString alloc] initWithFormat:format arguments:vargs];
|
||||
va_end(vargs);
|
||||
|
||||
NSString* message = [NSString stringWithFormat:@"<%@> %@", timestamp, formattedMessage];
|
||||
|
||||
switch (loglevel) {
|
||||
case 0:
|
||||
MLOGF(ANNOYING) << message;
|
||||
break;
|
||||
case 1:
|
||||
MLOGF(DEBUG) << message;
|
||||
break;
|
||||
case 2:
|
||||
MLOGF(INFO) << message;
|
||||
break;
|
||||
case 3:
|
||||
MLOGF(WARN) << message;
|
||||
break;
|
||||
case 4:
|
||||
MLOGF(ERROR) << message;
|
||||
break;
|
||||
default:
|
||||
#if DEBUG
|
||||
assert(false);
|
||||
#endif
|
||||
}
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
#endif /* logger_c_h */
|
Reference in New Issue
Block a user