调整插件安装和软件包安装日志记录方式

This commit is contained in:
dinglili 2024-07-17 14:08:33 +08:00 committed by wangpenglong
parent 9e942f12b5
commit 69f0518bd8
1 changed files with 21 additions and 8 deletions

View File

@ -115,6 +115,8 @@ export class DeployMainService implements IDeployMainService {
startInstallDepWatch = 0; startInstallDepWatch = 0;
logger: ILogger; logger: ILogger;
loggerExt: ILogger;
loggerSoft: ILogger;
constructor( constructor(
private userEnv: IProcessEnvironment, private userEnv: IProcessEnvironment,
@ -128,6 +130,8 @@ export class DeployMainService implements IDeployMainService {
this.updateConfigDir = installUtils.installConfigDirPre() + "/" + installUtils.getDateDir(); this.updateConfigDir = installUtils.installConfigDirPre() + "/" + installUtils.getDateDir();
this.reset(); this.reset();
this.logger = this.loggerMainService.createLogger(URI.file(this.installConfig + "/log/instguide.log")); this.logger = this.loggerMainService.createLogger(URI.file(this.installConfig + "/log/instguide.log"));
this.loggerExt = this.loggerMainService.createLogger(URI.file(this.installConfig + "/log/extinstdetail.log"));
this.loggerSoft = this.loggerMainService.createLogger(URI.file(this.installConfig + "/log/softinstdetail.log"));
this.removeListeners(); this.removeListeners();
this.registerListeners(); this.registerListeners();
} }
@ -208,7 +212,6 @@ export class DeployMainService implements IDeployMainService {
if (!fs.existsSync(logFile0)) { if (!fs.existsSync(logFile0)) {
fs.mkdirSync(this.installConfig + "/log", { recursive: true }); fs.mkdirSync(this.installConfig + "/log", { recursive: true });
} }
let installCommand = ""; let installCommand = "";
try { try {
const installItem = this.extDownloadPath + msg.downloadDone; const installItem = this.extDownloadPath + msg.downloadDone;
@ -232,8 +235,8 @@ export class DeployMainService implements IDeployMainService {
} }
} }
else if (msg.type === 'installPkg') { else if (msg.type === 'installPkg') {
const extlogFile = this.installConfig + '/log/extInstall.log'; // const extlogFile = this.installConfig + '/log/extInstall.log';
this.backupLogFile(extlogFile) // this.backupLogFile(extlogFile)
const extlogFile0 = this.installConfig + '/log/extInstall.1.log'; const extlogFile0 = this.installConfig + '/log/extInstall.1.log';
fs.writeFileSync(extlogFile0, ''); fs.writeFileSync(extlogFile0, '');
@ -284,11 +287,11 @@ export class DeployMainService implements IDeployMainService {
this.lastLogPosition = 0; this.lastLogPosition = 0;
this.lastExtLogPosition = 0; this.lastExtLogPosition = 0;
const logFile = this.installConfig + '/log/install.log'; // const logFile = this.installConfig + '/log/install.log';
const resultFile = this.installConfig + '/resultFile'; const resultFile = this.installConfig + '/resultFile';
const installFile = this.installConfig + '/install.sh'; const installFile = this.installConfig + '/install.sh';
const logFile0 = this.installConfig + '/log/install.1.log'; const logFile0 = this.installConfig + '/log/install.1.log';
this.backupLogFile(logFile); // this.backupLogFile(logFile);
try { try {
fs.writeFileSync(resultFile, ''); fs.writeFileSync(resultFile, '');
@ -714,8 +717,9 @@ export class DeployMainService implements IDeployMainService {
data: updatedContent data: updatedContent
}; };
this.logger.debug(`install pkg输出信息更新${updatedContent}`); // this.logger.debug(`install pkg输出信息更新${updatedContent}`);
if (updatedContent.length > 0)
fs.appendFileSync(this.installConfig + "/log/soft.log", updatedContent);
if (this.DeployWindow) if (this.DeployWindow)
this.DeployWindow.webContents.send("kylinide.installWizard.msg", installMsg); this.DeployWindow.webContents.send("kylinide.installWizard.msg", installMsg);
} }
@ -972,11 +976,13 @@ export class DeployMainService implements IDeployMainService {
try { try {
const pkexecCommand = `pkexec sudo bash ${scriptPath}`; const pkexecCommand = `pkexec sudo bash ${scriptPath}`;
this.logger.info(`执行命令 ${pkexecCommand}`); this.logger.info(`执行命令 ${pkexecCommand}`);
this.loggerSoft.info(`执行命令 ${pkexecCommand}`);
this.installProcessId = spawn(pkexecCommand, { shell: true, stdio: 'inherit' }); this.installProcessId = spawn(pkexecCommand, { shell: true, stdio: 'inherit' });
this.installProcessId.on('exit', (code, signal) => { this.installProcessId.on('exit', (code, signal) => {
this.flagPkexec++; this.flagPkexec++;
this.logger.info(`执行命令 ${pkexecCommand} 结束,退出码:${code}`); this.logger.info(`执行命令 ${pkexecCommand} 结束,退出码:${code}`);
this.loggerSoft.info(`执行命令 ${pkexecCommand} 结束,退出码:${code}`);
if (code == 127) { if (code == 127) {
//授权失败,结束安装。 //授权失败,结束安装。
if (this.DeployWindow) { if (this.DeployWindow) {
@ -987,6 +993,7 @@ export class DeployMainService implements IDeployMainService {
}); });
} catch (error) { } catch (error) {
this.logger.error(`执行脚本时出错: ${error.message}`); this.logger.error(`执行脚本时出错: ${error.message}`);
this.loggerSoft.error(`执行脚本时出错: ${error.message}`);
// return false; // return false;
} }
} }
@ -1031,11 +1038,15 @@ export class DeployMainService implements IDeployMainService {
const extlogFile = this.installConfig + '/log/extInstall.1.log'; const extlogFile = this.installConfig + '/log/extInstall.1.log';
let ret: { stdout: string, stderr: string } = await this.spawnCommand(installCommand) as { stdout: string; stderr: string; }; let ret: { stdout: string, stderr: string } = await this.spawnCommand(installCommand) as { stdout: string; stderr: string; };
if (ret.stdout) if (ret.stdout) {
fs.appendFileSync(extlogFile, ret.stdout); fs.appendFileSync(extlogFile, ret.stdout);
this.loggerExt.info(ret.stdout);
}
// if (ret.stderr) // if (ret.stderr)
// fs.appendFileSync(extlogFile, ret.stderr); // fs.appendFileSync(extlogFile, ret.stderr);
this.logger.info(`执行命令成功 ${installCommand}`); this.logger.info(`执行命令成功 ${installCommand}`);
this.loggerExt.info(`执行命令成功 ${installCommand}`);
const installMsg = { const installMsg = {
type: "extInstalled", type: "extInstalled",
@ -1053,6 +1064,8 @@ export class DeployMainService implements IDeployMainService {
fs.appendFileSync(extlogFile, '\n'); fs.appendFileSync(extlogFile, '\n');
fs.appendFileSync(extlogFile, error.message); fs.appendFileSync(extlogFile, error.message);
fs.appendFileSync(extlogFile, '\n'); fs.appendFileSync(extlogFile, '\n');
this.loggerExt.info(`执行命令失败 ${installCommand}`);
this.loggerExt.info(error.message);
const installMsg = { const installMsg = {
type: "extInstalledFail", type: "extInstalledFail",
extFileName: msg.downloadDone, extFileName: msg.downloadDone,