|
@@ -92,7 +92,6 @@ function delFile() {
|
|
|
/***********************************/
|
|
|
function getLastFile(dirPath, number, callback) {
|
|
|
fs.readdir(dirPath, async (err, files) => {
|
|
|
- logger.info(`--------01`)
|
|
|
if (err) {
|
|
|
logger.error(`无法列出目录。`, err);
|
|
|
// process.exit(1);
|
|
@@ -100,11 +99,12 @@ function getLastFile(dirPath, number, callback) {
|
|
|
let fileList = [];
|
|
|
//提示日志默认是根据日志生成的,拿到的files 也是 按照生成日志排序的,所以
|
|
|
// 按照倒叙获取,如果一个文件内容满足num,就不在继续查询,如果不够,继续获取文件
|
|
|
-
|
|
|
+ // logger.info("文件:",files)
|
|
|
for (file of files) {
|
|
|
const filePath = path.join(dirPath, file);
|
|
|
const stats = await fs.promises.stat(filePath);
|
|
|
fileList.push({name: file, time: stats.mtimeMs});
|
|
|
+ // logger.info("文件:" +filePath+"时间:"+stats.birthtime.getTime())
|
|
|
}
|
|
|
|
|
|
fileList.sort((a, b) => b.time - a.time);
|
|
@@ -118,30 +118,37 @@ function getLastFile(dirPath, number, callback) {
|
|
|
|
|
|
// 读取日志(倒叙)指定行数
|
|
|
function readLastNLines(dirPath, filePathList, n) {
|
|
|
- const fileList = [];
|
|
|
- var count = 0;
|
|
|
- for(var i = filePathList.length-1;i >=0;i--){
|
|
|
- var item = filePathList[i];
|
|
|
- var filepath = dirPath + "/" + item
|
|
|
-
|
|
|
- logger.info("日志文件:" + filepath)
|
|
|
- const content = fs.readFileSync(`${filepath}`, "utf8");
|
|
|
- let lines = content.trim().split("\n");
|
|
|
-
|
|
|
- fileList.push({
|
|
|
- filePath: item,
|
|
|
- lines: lines,
|
|
|
- })
|
|
|
- count += lines.length;
|
|
|
- if(count > n){
|
|
|
- break
|
|
|
+ try {
|
|
|
+
|
|
|
+
|
|
|
+ const fileList = [];
|
|
|
+ var count = 0;
|
|
|
+ for (var i = filePathList.length - 1; i >= 0; i--) {
|
|
|
+ var item = filePathList[i];
|
|
|
+ var filepath = dirPath + "/" + item
|
|
|
+
|
|
|
+ logger.info("日志文件:" + filepath)
|
|
|
+ const content = fs.readFileSync(`${filepath}`, "utf8");
|
|
|
+ let lines = content.trim().split("\n");
|
|
|
+
|
|
|
+ fileList.push({
|
|
|
+ filePath: item,
|
|
|
+ lines: lines,
|
|
|
+ })
|
|
|
+ count += lines.length;
|
|
|
+ if (count > n) {
|
|
|
+ break
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- fileList.reverse();
|
|
|
+ fileList.reverse();
|
|
|
|
|
|
- const allFile = [].concat(...fileList.map((item) => item.lines));
|
|
|
- let lastNLines = allFile.slice(-n).join("\n");
|
|
|
- return lastNLines.split("\n").reverse();
|
|
|
+ const allFile = [].concat(...fileList.map((item) => item.lines));
|
|
|
+ let lastNLines = allFile.slice(-n).join("\n");
|
|
|
+ return lastNLines.split("\n").reverse();
|
|
|
+ } catch (e) {
|
|
|
+ logger.info('获取日志异常了~~1111111111111111', e);
|
|
|
+
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|