123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- /**********
- * 日志功能
- */
- /**
- * 获取当前时间的字符串
- * @returns String
- */
- function GetCurrentLocalTime() {
- var d = new Date()
- return `${d.getFullYear()}-${
- d.getMonth() + 1
- }-${d.getDate()} ${d.getHours()}:${d.getMinutes()}:${d.getSeconds()}:${d.getMilliseconds()}`
- }
- function GetCNTimeString(date) {
- var d = date || new Date()
- return (
- d.toLocaleString('zh-CN', { hour12: false }).replace(/\//gi, '-') +
- ':' +
- d.getMilliseconds()
- )
- }
- /**
- * 记录日志
- * @param {*} msg
- */
- function loginfo(msg) {
- const _msg = `${GetCNTimeString()}:Info:${msg}`
- console.groupCollapsed(msg)
- console.trace()
- console.groupEnd()
- LogDebugInfoToStorage(_msg)
- }
- function logerr(data) {
- var _msg = `${GetCNTimeString()}:Error:${data}`
- if (data.stack) _msg = `${GetCNTimeString()}:Error\n\r${data.stack}`
- LogDebugInfoToStorage(_msg)
- }
- function IfLocalDebugInfo() {
- return wps.PluginStorage.getItem(constStrEnum.SaveLocalDebugInfo) || false
- }
- /**
- * 记录日志开关
- * @param {*} ifSave
- */
- function SetLocalDebug(ifSave) {
- wps.PluginStorage.setItem(constStrEnum.SaveLocalDebugInfo, ifSave)
- }
- //注意wps.FileSystem.readFileString 不能带有目录路径
- function GetLocalLogFilePath() {
- var d = new Date()
- var filepath = `IndiDocX.${d.getMonth() + 1}-${d.getDate()}.log`
- return filepath
- }
- function ClearLocalDebug() {
- let filepath = GetLocalLogFilePath()
- wps.FileSystem.writeFileString(filepath, `--清空日志--`)
- wps.FileSystem.Remove(filepath)
- }
- /**
- *
- * @param {*} msg
- */
- function LogDebugInfoToStorage(msg) {
- let filepath = GetLocalLogFilePath()
- const content = wps.FileSystem.readFileString(filepath)
- wps.FileSystem.writeFileString(filepath, content + '\n\r' + msg)
- }
- /**
- * 获取本地日志
- */
- function GetLocalDebugInfo() {
- let filepath = GetLocalLogFilePath()
- return wps.FileSystem.readFileString(filepath)
- }
- /**
- * 监控wps报错
- */
- window.onerror = function (msg, url, line, col, error) {
- //采用异步的方式
- setTimeout(function () {
- var data = { msg }
- //不一定所有浏览器都支持col参数
- col = col || (window.event && window.event.errorCharacter) || 0
- data.url = url
- data.line = line
- data.col = col
- if (!!error && !!error.stack) {
- //如果浏览器有堆栈信息
- //直接使用
- data.stack = error.stack.toString()
- } else if (!!arguments.callee) {
- //尝试通过callee拿堆栈信息
- var ext = []
- var f = arguments.callee.caller,
- c = 3
- //这里只拿三层堆栈信息
- while (f && --c > 0) {
- ext.push(f.toString())
- if (f === f.caller) {
- break //如果有环
- }
- f = f.caller
- }
- ext = ext.join(',')
- data.stack = ext
- }
- //把data上报到后台!
- logerr(data)
- }, 0)
- return false //返回true 则控制台隐藏默认打印
- }
|