@@ -19,16 +19,26 @@ var fs = require('fs'),
19
19
20
20
var forever = exports ;
21
21
22
+ //
23
+ // Setup `forever.log` to be a custom `winston` logger.
24
+ //
25
+ forever . log = new ( winston . Logger ) ( {
26
+ transports : [
27
+ new ( winston . transports . Console ) ( )
28
+ ]
29
+ } ) ;
30
+
31
+ forever . log . cli ( ) ;
32
+
22
33
//
23
34
// ### Export Components / Settings
24
35
// Export `version` and important Prototypes from `lib/forever/*`
25
36
//
26
37
forever . initialized = false ;
27
- forever . _debug = false ;
28
38
forever . root = path . join ( process . env . HOME , '.forever' ) ;
29
39
forever . config = new nconf . stores . File ( { file : path . join ( forever . root , 'config.json' ) } ) ;
30
- forever . cli = require ( './forever/cli' ) ;
31
- forever . Forever = forever . Monitor = require ( './forever/monitor' ) . Monitor ;
40
+ forever . Forever = forever . Monitor = require ( './forever/monitor' ) . Monitor ;
41
+ forever . cli = require ( './forever/cli' ) ;
32
42
33
43
//
34
44
// Expose version through `pkginfo`
@@ -80,12 +90,7 @@ forever.load = function (options) {
80
90
// If we have been indicated to debug this forever process
81
91
// then setup `forever._debug` to be an instance of `winston.Logger`.
82
92
//
83
- forever . config . set ( 'debug' , options . debug ) ;
84
- forever . _debug = new ( winston . Logger ) ( {
85
- transports : [
86
- new ( winston . transports . File ) ( { file : path . join ( options . root , 'forever.debug.log' ) } )
87
- ]
88
- } ) ;
93
+ forever . _debug ( ) ;
89
94
}
90
95
91
96
//
@@ -111,6 +116,17 @@ forever.load = function (options) {
111
116
forever . initialized = true ;
112
117
} ;
113
118
119
+ //
120
+ // ### @private function _debug ()
121
+ // Sets up debugging for this forever process
122
+ //
123
+ forever . _debug = function ( ) {
124
+ forever . config . set ( 'debug' , true ) ;
125
+ forever . log . add ( winston . transports . File , {
126
+ filename : path . join ( forever . config . get ( 'root' ) , 'forever.debug.log' )
127
+ } ) ;
128
+ }
129
+
114
130
//
115
131
// Ensure forever will always be loaded the first time it is required.
116
132
//
@@ -135,12 +151,12 @@ forever.stat = function (logFile, script, callback) {
135
151
136
152
fs . stat ( script , function ( err , stats ) {
137
153
if ( err ) {
138
- return callback ( new Error ( 'script ' + script + ' does not exist.' ) ) ;
154
+ return callback ( new Error ( 'Script ' + script + ' does not exist.' ) ) ;
139
155
}
140
156
141
157
return logAppend ? callback ( null ) : fs . stat ( logFile , function ( err , stats ) {
142
158
return ! err
143
- ? callback ( new Error ( 'log file ' + logFile + ' exists.' ) )
159
+ ? callback ( new Error ( 'Log file ' + logFile + ' exists.' ) )
144
160
: callback ( null ) ;
145
161
} ) ;
146
162
} ) ;
@@ -367,7 +383,9 @@ forever.list = function (format, procs) {
367
383
// Iterate over the procs to see which has the longest options string
368
384
procs . forEach ( function ( proc ) {
369
385
proc . length = [ proc . command || 'node' , proc . file ] . concat ( proc . options ) . join ( ' ' ) . length ;
370
- if ( proc . length > maxLen ) maxLen = proc . length ;
386
+ if ( proc . length > maxLen ) {
387
+ maxLen = proc . length ;
388
+ }
371
389
} ) ;
372
390
373
391
procs . forEach ( function ( proc ) {
@@ -463,8 +481,7 @@ forever.cleanUp = function (cleanLogs, allowManager) {
463
481
? cleanBatch ( processes . splice ( 0 , 10 ) )
464
482
: emitter . emit ( 'cleanUp' ) ;
465
483
} ) ;
466
- } ) ( processes . splice ( 0 , 10 ) ) ;
467
-
484
+ } ) ( processes . splice ( 0 , 10 ) ) ;
468
485
}
469
486
else {
470
487
process . nextTick ( function ( ) {
@@ -561,25 +578,6 @@ forever.checkProcess = function (pid, callback) {
561
578
} ) ;
562
579
} ;
563
580
564
- //
565
- // ### function debug (msg, meta, callback)
566
- // #### @msg {string} Message to log
567
- // #### @meta {Object} **Optional** Additional metadata to log.
568
- // #### @callback
569
- //
570
- forever . debug = function ( msg , meta , callback ) {
571
- if ( ! callback && typeof meta === 'function' ) {
572
- callback = meta ;
573
- meta = { } ;
574
- }
575
-
576
- if ( ! forever . _debug ) {
577
- return callback && callback ( ) ;
578
- }
579
-
580
- forever . _debug . info ( msg , meta , callback ) ;
581
- } ;
582
-
583
581
//
584
582
// ### function formatProcess (proc index, padding)
585
583
// #### @proc {Object} Process to format
@@ -592,7 +590,7 @@ function formatProcess (proc, index, padding) {
592
590
var command = proc . command || 'node' ;
593
591
594
592
// Create an array of the output we can later join
595
- return [ ' [' + index + ']' , command . grey , proc . file . grey ]
593
+ return [ '[' + index + ']' , command . grey , proc . file . grey ]
596
594
. concat ( proc . options . map ( function ( opt ) { return opt . grey } ) )
597
595
. concat ( [ padding + '[' + proc . pid + ',' , proc . foreverPid + ']' ] )
598
596
. concat ( proc . logFile ? proc . logFile . magenta : '' )
0 commit comments