100 lines
3.1 KiB
JavaScript
100 lines
3.1 KiB
JavaScript
const config = require('./config')
|
|
const Context = require("./context")
|
|
// const layout = log4js.layouts.patternLayout('%m')
|
|
if ( ! global.$inited ) {
|
|
init()
|
|
} else {
|
|
// 不再初始化
|
|
}
|
|
|
|
|
|
function init(){
|
|
global.$inited = true
|
|
|
|
const package = require("../package.json")
|
|
global.$version = package.version
|
|
|
|
// 上下文模块
|
|
global.$context = new Context();
|
|
|
|
// 载入日志
|
|
const log4js = require('log4js');
|
|
log4js.configure({
|
|
appenders: {
|
|
console: { type: 'stdout' , level: "info", layout: {
|
|
type: "pattern",
|
|
pattern: "%m",
|
|
},},
|
|
},
|
|
categories: {
|
|
default: { appenders: ['console'], level: 'debug' },
|
|
}
|
|
});
|
|
global.$logger = log4js.getLogger();
|
|
|
|
|
|
// 载入配置
|
|
global.$sConfig = config.SystemConfig
|
|
// 重载版本号
|
|
try {
|
|
global.$version = fs.readFileSync($sConfig.getLocalKitPath() + "/version", "UTF-8")
|
|
}catch ( e ) {}
|
|
|
|
let logPath = global.$sConfig.getLogPath();
|
|
global.$context.standalone("uConfig", function (){
|
|
return new config.UserConfig( $sConfig.getUserConfigFilePath() )
|
|
})
|
|
log4js.addLayout('customLayout', function(config) {
|
|
return function(logEvent) {
|
|
const now = new Date(logEvent.startTime)
|
|
let time = now.toLocaleTimeString();
|
|
time += "." + now.getMilliseconds().toString().padStart(3, '0');
|
|
const level = "" + logEvent.level;
|
|
const categoryName = logEvent.categoryName;
|
|
const message = logEvent.data[0];
|
|
if ( message && message.startsWith && message.startsWith("\r") ) {
|
|
return message;
|
|
}
|
|
|
|
let logMessage = `${time} ${level} - ${message}`;
|
|
|
|
// Add color to log message based on log level
|
|
switch (level) {
|
|
case 'INFO':
|
|
logMessage = `\x1b[32m${logMessage}\x1b[0m`; // Green color for INFO log level
|
|
break;
|
|
case 'WARN':
|
|
logMessage = `\x1b[33m${logMessage}\x1b[0m`; // Yellow color for WARN log level
|
|
break;
|
|
case 'ERROR':
|
|
logMessage = `\x1b[31m${logMessage}\x1b[0m`; // Red color for ERROR log level
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
return logMessage;
|
|
};
|
|
});
|
|
// 重置日志配置
|
|
log4js.configure({
|
|
appenders: {
|
|
console: { type: 'console' , level: "info", layout: {
|
|
type: 'customLayout'
|
|
}},
|
|
file: { type: 'dateFile', filename: logPath + '/kit.log', "pattern": "yyyy-MM-dd", "compress": true , alwaysIncludePattern : true, keepFileExt : true, numBackups : 7}
|
|
},
|
|
categories: {
|
|
default: { appenders: ['console', 'file'], level: 'debug' },
|
|
}
|
|
});
|
|
|
|
// 注册:远程仓库
|
|
global.$context.standalone("remote", async function (){
|
|
const Remote = require("./remote")
|
|
const remote = new Remote();
|
|
await remote.init()
|
|
return remote
|
|
})
|
|
|
|
} |