xlog-swift-bridge.mm 1.13 KB
#include <sys/xattr.h>
#import <mars/xlog/xloggerbase.h>
#import <mars/xlog/xlogger.h>
#import <mars/xlog/appender.h>
#import <mars/xlog/xlogger_interface.h>
#import <xlog-swift-bridge.h>

@implementation XLogBridge
- (void)open:(NSUInteger)level cacheDir:(NSString*)cacheDir logDir:(NSString*)logDir prefix:(NSString*)prefix cacheDays:(NSUInteger)cacheDays pubKey:(NSString*)pubKey consoleLogOpen:(BOOL)consoleLogOpen {
    xlogger_SetLevel((TLogLevel)level);
    mars::xlog::appender_set_console_log(consoleLogOpen);
    mars::xlog::XLogConfig config;
    config.pub_key_ = [pubKey UTF8String];
    config.mode_ = mars::xlog::kAppenderAsync;
    config.logdir_ = [logDir UTF8String];
    config.nameprefix_ = [prefix UTF8String];
    config.compress_mode_ = mars::xlog::kZlib;
    config.compress_level_ = 0;
    config.cachedir_ = [cacheDir UTF8String];
    config.cache_days_ = cacheDays;
    mars::xlog::appender_open(config);
    //keep Dart_XloggerWrite
    Dart_XloggerWrite(0, 2, "FlutterXLog", 0, 0, 0, "Open Flutter XLog.");
}

- (void)flush {
    mars::xlog::appender_flush_sync();
}

- (void)close {
    mars::xlog::appender_close();
}

@end