PB9 通用日志工具(自定义路径+自动清理+防崩溃+超长报文兼容)
一、前言
PB9 在HIS、ERP、政务等传统行业存量系统中应用广泛,但原生未提供通用日志方案,项目普遍存在路径固定、日志堆积、超长报文写入崩溃、单行代码闪退、日志格式混乱等问题。同时高版本PB的目录遍历、递归删除API在PB9中均不兼容,网上绝大多数日志工具无法直接投产使用。
本文分享一套纯PB9原生API、零第三方依赖、可直接投产的通用日志函数,一站式解决PB9各类日志适配痛点,适配所有老旧PB9业务系统。
二、核心功能
- 灵活路径配置:空值默认生成public_log 目录,支持自定义日志根路径
- 按日分档存储:自动创建 yyyymmdd 日期目录,日志结构清晰
- 自动过期清理:默认保留30天日志,自动清理过期文件及空目录
- 超长报文兼容:突破PB9单行32765字符写入限制,支持超长JSON报文
- 防崩溃优化:变量统一头部声明、拆分超长表达式,彻底解决PB9解析闪退问题
- 安全容错:自动还原程序工作目录,不影响系统正常运行
三、PB9适配难点与方案
1. 无高级目录API
摒弃高版本目录遍历API,采用日期回溯生成目录名的轻量化方案精准清理日志。适配PB9仅支持空目录删除的限制,先清理过期日志文件,再删除空目录,全程无误删业务文件、目录的风险。
2. 单行文本长度限制
将完整日志内容转为Blob格式,分段循环写入,完美规避PB9单行32765字符长度限制,解决超长JSON报文截断、程序崩溃问题。
3. 超长代码解析崩溃
统一头部集中声明所有变量,拆分所有超长单行表达式与嵌套拼接逻辑,完全适配PB9编译器解析规则,彻底杜绝编译、运行闪退问题。
四、函数参数说明
Plain Text |
路径优先级规则:自定义日志路径 > 空值默认 public_log 目录
五、完整源码(PB9直接可用)
powerbuilder |