guru_sdk/guru_app/plugins/persistent/lib/log/persistent_log.dart

76 lines
2.0 KiB
Dart

import 'dart:io';
import 'package:flutter/foundation.dart';
import 'package:flutter/services.dart';
/// Created by Haoyi on 2023/3/29
///
class Formatter {
static const int main = 0;
static const int raw = 1;
}
class MethodNames {
static const String create = "create_log";
static const String clear = "clear_log";
static const String log = "log";
static const String getLogRootDir = "get_log_root_dir";
}
class PersistentLog {
static const channel = MethodChannel("app.guru.persistent.LOG");
static const String logName = "log_name";
static const String fileSizeLimit = "file_size";
static const String fileCount = "file_count";
static const String level = "level";
static const String formatter = "formatter";
static const String echo = "echo";
static const String message = "msg";
static Future<bool> createLogger(
{required String logName,
int fileSizeLimit = 1024 * 1024 * 10,
int fileCount = 7,
int formatter = Formatter.main,
bool echo = false}) async {
if (kIsWeb) {
return false;
}
return await channel.invokeMethod(MethodNames.create, {
PersistentLog.logName: logName,
PersistentLog.fileSizeLimit: fileSizeLimit,
PersistentLog.fileCount: fileCount,
PersistentLog.formatter: formatter,
PersistentLog.echo: echo,
});
}
static Future clearLogger({required String logName}) async {
if (kIsWeb) {
return false;
}
return await channel.invokeMethod(MethodNames.clear, {
PersistentLog.logName: logName,
});
}
static Future log({required String logName, required String message}) async {
if (kIsWeb) {
return false;
}
return await channel.invokeMethod(MethodNames.log, {
PersistentLog.logName: logName,
PersistentLog.message: message,
});
}
static Future<File> getLogRootDir() async {
if (kIsWeb) {
return File("");
}
final path = await channel.invokeMethod(MethodNames.getLogRootDir);
return File(path);
}
}