3
3
var fs = require ( 'fs' ) ;
4
4
var helper = require ( '../utils' ) ;
5
5
var Parser = require ( '../error_parser' ) ;
6
- const { promisify } = require ( 'util' ) ;
7
- var glob = promisify ( require ( 'glob' ) ) ;
6
+ var glob = require ( 'glob' ) ;
8
7
9
8
var MAX_ERROR_COUNT = 20 ; // 一次最多抓获20个Error
10
9
exports . logs = [ ] ; // 日志路径
@@ -13,12 +12,14 @@ var keyMap = new Map(); // 记录每个key实际对应的路径值
13
12
var map = new Map ( ) ; // 记录每个文件访问的位置
14
13
var parsers = new Map ( ) ; // 每个key都有一个parser
15
14
16
- var getRealPath = async function ( filepath ) {
17
- var files = await glob ( filepath )
18
- return files . map ( path => helper . resolveYYYYMMDDHH ( path ) )
19
-
15
+ var getRealPath = function ( filepath , callback ) {
16
+ glob ( filepath , callback ) ;
20
17
} ;
21
18
19
+ // var a = function (err,file){
20
+ // return file.map(path => helper.resolveYYYYMMDDHH(path))
21
+ // }
22
+
22
23
var readFile = function ( key , filepath , callback ) {
23
24
fs . stat ( filepath , function ( err , stats ) {
24
25
if ( err ) {
@@ -66,27 +67,37 @@ var readFile = function (key, filepath, callback) {
66
67
} ) ;
67
68
} ;
68
69
69
- var readLog = async function ( key , callback ) {
70
- var currentPaths = await getRealPath ( key ) ;
71
- var currents = keyMap . get ( key ) ;
72
-
73
- if ( currentPaths . toString ( ) !== currents . toString ( ) ) {
74
- keyMap . set ( key , currentPath ) ; // replace real path
75
- currents . forEach ( current => {
76
- readFile ( key , current , function ( err ) {
77
- if ( err ) {
78
- return callback ( err ) ;
79
- }
70
+ var readLog = function ( key , callback ) {
71
+ getRealPath ( key , function ( _err , files ) {
72
+ var currentPaths = files . map ( path => helper . resolveYYYYMMDDHH ( path ) ) ;
73
+ var currents = keyMap . get ( key ) ;
74
+
75
+ if ( currentPaths . toString ( ) !== currents . toString ( ) ) {
76
+ keyMap . set ( key , currentPaths ) ; // replace real path
77
+ currents . forEach ( current => {
78
+ readFile ( key , current , function ( err ) {
79
+ if ( err ) {
80
+ return callback ( err ) ;
81
+ }
82
+ if ( currentPaths . length !== 0 ) {
83
+ currentPaths . forEach ( path => {
84
+ readFile ( key , path , callback ) ;
85
+ } ) ;
86
+ } else {
87
+ readFile ( key , '' , callback ) ;
88
+ }
89
+ } ) ;
90
+ } ) ;
91
+ } else {
92
+ if ( currentPaths . length !== 0 ) {
80
93
currentPaths . forEach ( path => {
81
94
readFile ( key , path , callback ) ;
82
- } )
83
- } ) ;
84
- } )
85
- } else {
86
- currentPaths . forEach ( path => {
87
- readFile ( key , path , callback ) ;
88
- } )
89
- }
95
+ } ) ;
96
+ } else {
97
+ readFile ( key , '' , callback ) ;
98
+ }
99
+ }
100
+ } ) ;
90
101
} ;
91
102
92
103
var readLogs = function ( callback ) {
@@ -104,21 +115,25 @@ var readLogs = function (callback) {
104
115
}
105
116
} ;
106
117
107
- exports . init = async function ( config ) {
118
+ exports . init = function ( config ) {
108
119
if ( config . error_log ) {
109
120
exports . logs = config . error_log ;
110
121
var logs = config . error_log ;
111
122
112
- for ( var i = 0 ; i < logs . length ; i ++ ) {
113
- var key = logs [ i ] ;
114
- parsers . set ( key , new Parser ( MAX_ERROR_COUNT ) ) ;
115
- var realPath = await getRealPath ( key ) ;
123
+ var key ;
124
+ var initCallBack = function ( _err , files ) {
125
+ var realPath = files . map ( path => helper . resolveYYYYMMDDHH ( path ) ) ;
116
126
realPath . forEach ( path => {
117
127
if ( fs . existsSync ( path ) ) {
118
128
map . set ( path , fs . statSync ( path ) . size ) ;
119
129
}
120
- } )
130
+ } ) ;
121
131
keyMap . set ( key , realPath ) ;
132
+ } ;
133
+ for ( var i = 0 ; i < logs . length ; i ++ ) {
134
+ key = logs [ i ] ;
135
+ parsers . set ( key , new Parser ( MAX_ERROR_COUNT ) ) ;
136
+ getRealPath ( key , initCallBack ) ;
122
137
}
123
138
}
124
139
} ;
0 commit comments