|
@@ -163,28 +163,32 @@ async function readLastNLines(dirPath, filePathList, n) {
|
|
|
async function getRecentLogs(dirPath, logFiles, requiredLogs = 100) {
|
|
|
let logs = [];
|
|
|
|
|
|
- let logsSize = requiredLogs
|
|
|
- for (const file of logFiles) {
|
|
|
- let log = [];
|
|
|
- // 创建文件流
|
|
|
- const filepath = `${dirPath}/${file}`;
|
|
|
- const fileStream = fs.createReadStream(filepath);
|
|
|
-
|
|
|
- const rl = readline.createInterface({
|
|
|
- input: fileStream,
|
|
|
- crlfDelay: Infinity
|
|
|
- });
|
|
|
+ try {
|
|
|
+ let logsSize = requiredLogs
|
|
|
+ for (const file of logFiles) {
|
|
|
+ let log = [];
|
|
|
+ // 创建文件流
|
|
|
+ const filepath = `${dirPath}/${file}`;
|
|
|
+ const fileStream = fs.createReadStream(filepath);
|
|
|
+
|
|
|
+ const rl = readline.createInterface({
|
|
|
+ input: fileStream,
|
|
|
+ crlfDelay: Infinity
|
|
|
+ });
|
|
|
|
|
|
- for await (const line of rl) {
|
|
|
- log.push(line);
|
|
|
- }
|
|
|
+ for await (const line of rl) {
|
|
|
+ log.push(line);
|
|
|
+ }
|
|
|
|
|
|
- for (const l of log.reverse()) {
|
|
|
- logs.push(l);
|
|
|
- if (logs.length >= requiredLogs) {
|
|
|
- break
|
|
|
+ for (const l of log.reverse()) {
|
|
|
+ logs.push(l);
|
|
|
+ if (logs.length >= requiredLogs) {
|
|
|
+ break
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
+ } catch (e) {
|
|
|
+ logger.info('读取文件发生异常咯~~~', e.message);
|
|
|
}
|
|
|
|
|
|
return logs; // 如果日志不够500条,返回现有日志
|