尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
【Electron】集成日志
GitHub path安装install npmpackage:npm install electron-log主进程electron-log/main/** * file 日志模块 - 统一管理 Electron 主进程日志 * description 负责日志目录初始化、文件滚动、级别控制、自动清理以及渲染进程日志捕获。 */import{app}fromelectron;importlogfromelectron-log;import*asfsfromnode:fs;import*aspathfromnode:path;import{storeUrl}from../utils/path;// 用户文档根目录ViefongChat Files/** * 初始化主进程日志系统 * * 执行流程按顺序 * 1. 提前初始化 IPC 通道确保渲染进程 Preload 能顺利调用日志方法不拦截 console避免干扰预加载逻辑 * 2. 在用户文档中创建专属日志目录ViefongChat Files/logs * 3. 配置日志格式、按本地时区生成每日文件名、单文件大小限制5MB 自动滚动 * 4. 根据运行环境开发/生产调整日志输出级别 * 5. 启动全局异常捕获未处理异常 Promise 拒绝 * 6. 自动清理超过 30 天的旧日志文件 */exportfunctioninitLogger(){// 1. 核心时序优先开启渲染进程 IPC 通道 // 必须在任何窗口创建之前执行否则渲染进程的 preload 脚本可能因找不到日志方法而报错。// 这里不拦截渲染进程的 console因为我们在 preload 中自行通过 IPC 转发日志避免重复。log.initialize({spyRendererConsole:false});// 2. 路径与目录准备 constlogDirpath.join(storeUrl,logs);// 确保日志目录存在若不存在则递归创建防止因权限问题导致后续写入失败if(!fs.existsSync(logDir)){fs.mkdirSync(logDir,{recursive:true});}// 3. 日志格式与文件名配置 // 时间戳精确到毫秒并包含日志级别便于事后按时间线还原现场log.transports.file.format[{y}-{m}-{d} {h}:{i}:{s}.{ms}] [{level}] {text};// 使用本地时区生成日志文件名避免 UTC 时差导致早上 0-8 点的日志误写入前一天文件constlocalDatenewDate();constyearlocalDate.getFullYear();constmonthString(localDate.getMonth()1).padStart(2,0);constdayString(localDate.getDate()).padStart(2,0);constcurrentFileNamemain-${year}-${month}-${day}.log;log.transports.file.fileNamecurrentFileName;// 强制将日志写入到自定义目录而非 Electron 默认的临时目录AppData 或 ~/Library/Logslog.transports.file.resolvePathFn()path.join(logDir,currentFileName);// 单文件达到 5MB 时自动滚动重命名旧文件创建新文件避免单个文件过大log.transports.file.maxSize5*1024*1024;// 4. 环境敏感的输出级别控制 if(app.isPackaged){// 生产环境仅记录 warn 及以上级别到文件控制台完全静默减少磁盘 I/O避免暴露内部信息log.transports.file.levelwarn;log.transports.console.levelfalse;}else{// 开发环境info 及以上写入文件debug 及以上打印到控制台便于实时调试log.transports.file.levelinfo;log.transports.console.leveldebug;}// 5. 全局异常捕获 // 捕获主进程中未被 try/catch 包裹的异常和未处理的 Promise 拒绝统一写入日志log.errorHandler.startCatching();log.info(Viefong 日志模块已成功绑定至自定义目录:${logDir});// 6. 启动时自动清理过期日志 // 删除 30 天前的 .log 文件避免用户磁盘被无限堆积try{cleanOldLogs(logDir,30);}catch(err){console.error(【自动清理】执行旧日志回收失败:,err);}}/** * 删除指定目录下超过保留天数的 .log 文件 * * param logDir 日志目录路径 * param maxDays 最大保留天数单位天例如 30 表示只保留最近 30 天的日志 */functioncleanOldLogs(logDir:string,maxDays:number){if(!fs.existsSync(logDir))return;constfilesfs.readdirSync(logDir);constnowDate.now();constexpirationTimemaxDays*24*60*60*1000;files.forEach((file){if(file.endsWith(.log)){constfilePathpath.join(logDir,file);conststatfs.statSync(filePath);if(now-stat.mtimeMsexpirationTime){fs.unlinkSync(filePath);console.log([Log GC] 已删除过期的日志文件:${file});}}});}// 导出已配置的 log 实例供其他模块主进程、子进程等直接使用exportdefaultlog;渲染进程: electron-log/rendererimportlogfromelectron-log/rendererlog.error|warn|info|verbose|debug|silly子进程importprintLogfromelectron-log/node// 需要配置setAppName若是不知道程序昵称则去package.json中看name是什么就对应写什么printLog.transports.file.setAppName(程序昵称);
RELATED

相关推荐

游戏武器评分系统开发指南:从数据库设计到算法优化

游戏武器评分系统开发指南:从数据库设计到算法优化

这次我们来看一个名为"那个武器应用6分的JCC校草"的项目,从标题看可能涉及游戏武器评分系统或角色评价机制。虽然具体技术细节在现有材料中不够明确,但我们可以基于常见的游戏评分系统和技术实现方案,探讨如何构建一个完整的武器评…

📅 2026/11/8 22:43:01
Ubuntu软件管理全指南:从APT到Snap安装与卸载

Ubuntu软件管理全指南:从APT到Snap安装与卸载

1. Ubuntu软件管理基础认知作为一个长期使用Ubuntu的开发者,我深刻体会到掌握软件安装与卸载技巧对提升工作效率的重要性。与Windows系统不同,Ubuntu采用独特的包管理机制,这套系统既强大又精密,需要我们从底层理解其运作原理。Ub…

📅 2026/10/29 20:10:58
计算机毕业设计之基于SpringBoot的英语单词学习系统设计与实现

计算机毕业设计之基于SpringBoot的英语单词学习系统设计与实现

在当今全球化日益加深的背景下,英语学习已成为提升个人竞争力的重要途径。为了满足广大英语学习者的需求,我们设计并实现了一款基于SpringBoot、Vue和MySQL技术的英语单词学习系统。该系统集用户友好的界面与丰富的功能于一体,旨在为用户提供…

📅 2026/9/12 22:02:55
MORE NEWS

更多资讯

📰

电工证如何补办理真实经历:工地太忙根本没时间复习考试

电工证如何补办理真实经历:工地太忙根本没时间复习考试 工地太忙根本没时间复习考试,我就是那个在工地赶工期、连饭都顾不上吃的人,偏偏在去年被查出没有电工证,差点被开除。这事儿听起来有点夸张,但这就是我亲身经历的【电工证如何补办理】的真实案例。…

📰

电工证过年审没过期怎么报名才靠谱?实操考试心里没底怕挂科

电工证过年审没过期怎么报名才靠谱?实操考试心里没底怕挂科 你是不是正准备考电工证,或者是已经拿到证但担心过年审没过期?说实话,现在很多人心里都跟明镜似的,知道自己要干这行,没证寸步难行。可一到报名、考试、审证这些事,就有点发怵,尤其是实操考…

📰

广西电工证免费培训别踩坑,真实经历告诉你怎么考过不花钱

广西电工证免费培训别踩坑,真实经历告诉你怎么考过不花钱 怕考不过白交培训费?广西电工证免费培训真的靠谱吗?去年我同事小李就是被一家培训机构坑了,花了3000块培训费,结果考试挂了,证书也没拿到,现在还在追着机构要退钱。别看现在网上各种“免费…

📰

住建厅电工证年审复审延期怎么办理在哪考

住建厅电工证年审复审延期怎么办理在哪考 证书过期了不知道怎么复审延期,这可能是很多电工从业者遇到的现实问题。尤其是在住建厅电工证年审这件事上,一旦错过时间节点,不仅影响工作,还可能被单位暂停岗位资格。如果你也面临这种情况,别急,这篇内容就帮…

📰

广西电工证免费培训真实经历:实操考试心里没底怕挂科?老电工教你避坑

广西电工证免费培训真实经历:实操考试心里没底怕挂科?老电工教你避坑 实操考试心里没底怕挂科?我刚从广西电工证免费培训回来,说真的,很多人跟我一样,第一次接触这类考试,心里没底,怕挂科。尤其是像我们这些没太多基础的,一听说要上手操作,心里就开…

📰

电工证交钱就有吗?含金量决定你的收入天花板

电工证交钱就有吗?含金量决定你的收入天花板 你是不是也遇到过这样的情况,找工作必须要有电工证,但又担心网上所谓的“快速拿证”是骗局?电工证交钱就有吗?这个问题,直接关系到你能不能顺利上岗,也决定着你未来的职业含金量。今天我们就来拆解一下电工…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬