117 lines
4.6 KiB
JavaScript
117 lines
4.6 KiB
JavaScript
// colors only works in nodejs cli
|
||
// consola works in nodejs and browser
|
||
// chalk 和 colors 用法类似。
|
||
|
||
const colors = require('colors')
|
||
|
||
function routeNow () {
|
||
const pageNow = globalThis.getCurrentPages()[globalThis.getCurrentPages().length - 1]
|
||
return pageNow?.route || 'VueApp'
|
||
}
|
||
|
||
module.exports =
|
||
globalThis.uni && globalThis.UniApp // && globalThis.getApp?.()?.constructor?.name === 'Vue'
|
||
? {
|
||
// 客户端 uniapp
|
||
cclog (...args) {
|
||
console.log(
|
||
`%c ${new Date().toJSON()} [LG] ${routeNow()}`,
|
||
'background: #808080; border-radius: 0.5em;color: white; font-weight: bold; padding: 2px 0.5em;',
|
||
...args
|
||
)
|
||
},
|
||
ccinfo (...args) {
|
||
console.info(
|
||
`%c ${new Date().toJSON()} [IF] ${routeNow()}`,
|
||
'background: #0000ff; border-radius: 0.5em;color: white; font-weight: bold; padding: 2px 0.5em;',
|
||
...args
|
||
)
|
||
},
|
||
ccgood (...args) {
|
||
console.info(
|
||
`%c ${new Date().toJSON()} [OK] ${routeNow()}`,
|
||
'background: #2ecc71; border-radius: 0.5em;color: white; font-weight: bold; padding: 2px 0.5em;',
|
||
...args
|
||
)
|
||
},
|
||
ccwarn (...args) {
|
||
console.warn(
|
||
`%c ${new Date().toJSON()} [WA] ${routeNow()}`,
|
||
'background: #f39c12; border-radius: 0.5em;color: white; font-weight: bold; padding: 2px 0.5em;',
|
||
...args
|
||
)
|
||
},
|
||
ccerror (...args) {
|
||
console.error(
|
||
`%c ${new Date().toJSON()} [ER] ${routeNow()}`,
|
||
'background: #c0392b; border-radius: 0.5em;color: white; font-weight: bold; padding: 2px 0.5em;',
|
||
...args
|
||
)
|
||
},
|
||
ccdebug (...args) {
|
||
if (process.env.NODE_ENV !== 'production') {
|
||
console.debug(
|
||
`%c ${new Date().toJSON()} [DB] ${routeNow()}`,
|
||
'background: #ff0000; border-radius: 0.5em;color: white; font-weight: bold; padding: 2px 0.5em;',
|
||
...args
|
||
)
|
||
}
|
||
},
|
||
}
|
||
: typeof uniCloud !== 'undefined'
|
||
? {
|
||
// uniCloud 云空间
|
||
// HBuilder 内置环境的 console 不支持颜色。为了检查是否支持颜色,测试 uniCloud 是否存在(不存在说明在自己的server环境里),
|
||
// 或 require('supports-color'),相应的返回不同的函数。
|
||
cclog (...args) {
|
||
console.log(new Date().toJSON(), '[LG]', ...args)
|
||
},
|
||
ccinfo (...args) {
|
||
console.info(new Date().toJSON(), '[IF]', ...args)
|
||
},
|
||
ccgood (...args) {
|
||
console.info(new Date().toJSON(), '[OK]', ...args)
|
||
},
|
||
ccwarn (...args) {
|
||
// console.warn will appear in pm2's error log
|
||
console.warn(new Date().toJSON(), '[WA]', ...args)
|
||
},
|
||
ccerror (...args) {
|
||
// console.error will appear in pm2's error log
|
||
console.error(new Date().toJSON(), '[ER]', ...args)
|
||
},
|
||
ccdebug (...args) {
|
||
if ('production' !== process.env.NODE_ENV) {
|
||
// 在server的测试环境下. 注意在 uniCloud 环境下,`process.env.NODE_ENV` 不存在. 如要应用本方法,需要手动设置 `process.env.NODE_ENV`
|
||
console.log(new Date().toJSON(), '[DB]', ...args)
|
||
}
|
||
},
|
||
}
|
||
: {
|
||
// 后台服务器命令行。注意如果输出重定向到文件里,会有 ESC[34m2023-10-07T12:32:00.915ZESC[39m 这样的特殊标识。
|
||
// 在 pm2 里,为了防止特殊标志,可用 --no-color
|
||
cclog (...args) {
|
||
console.log(colors.blue(new Date().toJSON()), '[LG]', ...args)
|
||
},
|
||
ccinfo (...args) {
|
||
console.info(colors.blue(new Date().toJSON()), '[IF]', ...args)
|
||
},
|
||
ccgood (...args) {
|
||
console.info(colors.green(new Date().toJSON()), '[OK]', ...args)
|
||
},
|
||
ccwarn (...args) {
|
||
// console.warn will appear in pm2's error log
|
||
console.warn(colors.yellow(new Date().toJSON()), '[WA]', ...args)
|
||
},
|
||
ccerror (...args) {
|
||
// console.error will appear in pm2's error log
|
||
console.error(colors.red(new Date().toJSON()), '[ER]', ...args)
|
||
},
|
||
ccdebug (...args) {
|
||
if ('production' !== process.env.NODE_ENV) {
|
||
// 在server的测试环境下. 注意在 uniCloud 环境下,`process.env.NODE_ENV` 不存在. 如要应用本方法,需要手动设置 `process.env.NODE_ENV`
|
||
console.log(colors.rainbow(new Date().toJSON()), '[DB]', ...args)
|
||
}
|
||
},
|
||
}
|