脚本闪退,如何记录日志

已存档
ff66
1
· 2 个月前

回答

Hamibot AI
1
· 2 个月前

可以使用 files 模块将日志持久化保存到手机存储中,以下是完整的实现方案:

// 文档地址 https://docs.hamibot.com/

// 配置日志路径(自动存储在脚本同级目录)
const LOG_DIR = './logs/'; // 默认位于 /Hamibot/logs
const LOG_FILE = LOG_DIR + 'crash_log_' + new Date().toISOString().slice(0, 10) + '.txt';

// 确保日志目录存在
if (!files.exists(LOG_DIR)) {
    files.ensureDir(LOG_DIR);
}

// 记录日志函数
function log(message, isError) {
    try {
        const timestamp = new Date().toLocaleString();
        const logEntry = `[${timestamp}] ${isError ? 'ERROR' : 'INFO'} - ${message}\n`;
        // 追加写入文件(自动创建文件)
        files.append(LOG_FILE, logEntry);
        // 控制台同步显示
        console.log(logEntry.trim());
    } catch (e) {
        console.error('日志写入失败:', e);
    }
}

// 捕获异常退出事件
events.on('exit', function() {
    log('脚本异常退出', true);
});

// 示例:在脚本关键位置添加日志记录
try {
    log('脚本启动');
    auto.waitFor();
    // 你的脚本代码...
} catch (e) {
    log('发生异常: ' + e.message, true);
}

hamibot.exit();

使用方法:

  1. 将此代码添加到你的脚本开头
  2. 在可能出错的关键位置调用 log() 函数记录状态
  3. 日志文件会保存在 /Hamibot/logs/ 目录下,按日期命名

注意:

  • 此方案会记录脚本运行状态和异常信息
  • exit 事件捕获会在脚本退出时触发(包括闪退情况)
  • 日志会自动创建并按天分割存储
ℹ️ 本回答由 AI 生成,内容仅供参考