|
@@ -138,17 +138,36 @@ function getLastFile(dirPath, number, callback) {
|
|
|
|
|
|
// 读取日志(倒叙)指定行数
|
|
|
function readLastNLines(dirPath, filePathList, n) {
|
|
|
- const fileList = filePathList.map((item) => {
|
|
|
+ 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");
|
|
|
- return {
|
|
|
+
|
|
|
+ fileList.push({
|
|
|
filePath: item,
|
|
|
lines: lines,
|
|
|
- };
|
|
|
- });
|
|
|
+ })
|
|
|
+ count += lines.length;
|
|
|
+ if(count > n){
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // const fileList = filePathList.map((item) => {
|
|
|
+ // var filepath = dirPath + "/" + item
|
|
|
+ //
|
|
|
+ // logger.info("日志文件:" + filepath)
|
|
|
+ // const content = fs.readFileSync(`${filepath}`, "utf8");
|
|
|
+ // let lines = content.trim().split("\n");
|
|
|
+ // return {
|
|
|
+ // filePath: item,
|
|
|
+ // lines: lines,
|
|
|
+ // };
|
|
|
+ // });
|
|
|
const allFile = [].concat(...fileList.map((item) => item.lines));
|
|
|
let lastNLines = allFile.slice(-n).join("\n");
|
|
|
return lastNLines.split("\n").reverse();
|