mirror of
https://github.com/whyour/qinglong.git
synced 2026-07-17 09:34:31 +08:00
增加启动错误日志
This commit is contained in:
+11
-13
@@ -8,6 +8,7 @@ import { Container } from 'typedi';
|
|||||||
import config from './config';
|
import config from './config';
|
||||||
import Logger from './loaders/logger';
|
import Logger from './loaders/logger';
|
||||||
import { monitoringMiddleware } from './middlewares/monitoring';
|
import { monitoringMiddleware } from './middlewares/monitoring';
|
||||||
|
import { errStack } from './config/util';
|
||||||
import { type GrpcServerService } from './services/grpc';
|
import { type GrpcServerService } from './services/grpc';
|
||||||
import { type HttpServerService } from './services/http';
|
import { type HttpServerService } from './services/http';
|
||||||
|
|
||||||
@@ -48,7 +49,7 @@ class Application {
|
|||||||
await this.startWorkerProcess();
|
await this.startWorkerProcess();
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
Logger.error('Failed to start application:', error);
|
Logger.error(`Failed to start application:\n${errStack(error)}`);
|
||||||
process.exit(1);
|
process.exit(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -64,7 +65,7 @@ class Application {
|
|||||||
this.httpWorker = this.forkWorker('http');
|
this.httpWorker = this.forkWorker('http');
|
||||||
})
|
})
|
||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
Logger.error('[boot] Failed to wait for gRPC worker:', error);
|
Logger.error(`[boot] Failed to wait for gRPC worker:\n${errStack(error)}`);
|
||||||
process.exit(1);
|
process.exit(1);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -88,12 +89,12 @@ class Application {
|
|||||||
this.httpWorker.send('reregister-crons');
|
this.httpWorker.send('reregister-crons');
|
||||||
Logger.info('Sent reregister-crons message to HTTP worker');
|
Logger.info('Sent reregister-crons message to HTTP worker');
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
Logger.error('Failed to send reregister-crons message:', error);
|
Logger.error(`Failed to send reregister-crons message:\n${errStack(error)}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
Logger.error('Failed to restart gRPC worker:', error);
|
Logger.error(`Failed to restart gRPC worker:\n${errStack(error)}`);
|
||||||
process.exit(1);
|
process.exit(1);
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
@@ -176,10 +177,7 @@ class Application {
|
|||||||
try {
|
try {
|
||||||
worker.send('shutdown');
|
worker.send('shutdown');
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
Logger.warn(
|
Logger.warn(`Failed to send shutdown to worker ${worker.process.pid}:\n${errStack(error)}`);
|
||||||
`Failed to send shutdown to worker ${worker.process.pid}:`,
|
|
||||||
error,
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -199,7 +197,7 @@ class Application {
|
|||||||
]);
|
]);
|
||||||
process.exit(0);
|
process.exit(0);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
Logger.error('Error during worker shutdown:', error);
|
Logger.error(`Error during worker shutdown:\n${errStack(error)}`);
|
||||||
process.exit(1);
|
process.exit(1);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -226,7 +224,7 @@ class Application {
|
|||||||
|
|
||||||
process.send?.('ready');
|
process.send?.('ready');
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
Logger.error(`[boot] ${serviceType} worker failed:`, error);
|
Logger.error(`[boot] ${serviceType} worker failed:\n${errStack(error)}`);
|
||||||
process.exit(1);
|
process.exit(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -275,7 +273,7 @@ class Application {
|
|||||||
await cronService.autosave_crontab();
|
await cronService.autosave_crontab();
|
||||||
Logger.info('[boot] Cron jobs re-registered successfully');
|
Logger.info('[boot] Cron jobs re-registered successfully');
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
Logger.error('[boot] Failed to re-register cron jobs:', error);
|
Logger.error(`[boot] Failed to re-register cron jobs:\n${errStack(error)}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -297,7 +295,7 @@ class Application {
|
|||||||
}
|
}
|
||||||
process.exit(0);
|
process.exit(0);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
Logger.error(`[${serviceType}] Error during shutdown:`, error);
|
Logger.error(`[${serviceType}] Error during shutdown:\n${errStack(error)}`);
|
||||||
process.exit(1);
|
process.exit(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -305,6 +303,6 @@ class Application {
|
|||||||
|
|
||||||
const app = new Application();
|
const app = new Application();
|
||||||
app.start().catch((error) => {
|
app.start().catch((error) => {
|
||||||
Logger.error('🙅♀️ Application failed to start:', error);
|
Logger.error(`🙅♀️ Application failed to start:\n${errStack(error)}`);
|
||||||
process.exit(1);
|
process.exit(1);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -541,6 +541,12 @@ export function safeJSONParse(value?: string) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function errStack(error: unknown): string {
|
||||||
|
return error instanceof Error && error.stack
|
||||||
|
? error.stack
|
||||||
|
: String(error);
|
||||||
|
}
|
||||||
|
|
||||||
export async function rmPath(path: string) {
|
export async function rmPath(path: string) {
|
||||||
try {
|
try {
|
||||||
const _exsit = await fileExist(path);
|
const _exsit = await fileExist(path);
|
||||||
|
|||||||
Reference in New Issue
Block a user