76 lines
2.0 KiB
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);
|
|
}
|
|
}
|