@@ -5,6 +5,7 @@ import * as utility from 'utility';
55import * as cluster from 'cluster' ;
66import * as schedule from 'node-schedule' ;
77import * as util from 'util' ;
8+ import { isMainProcess } from '../utils' ;
89import Transport from './transport' ;
910import { ITransportFileOption } from '../types/transport.t' ;
1011import { TConsoleMeta } from '../types/console.t' ;
@@ -54,8 +55,9 @@ export default class FileTransport extends Transport {
5455 splitLog ( ) {
5556 const self = this ;
5657
57- schedule . scheduleJob ( this . splitTime , async ( ) => {
58- if ( cluster . isMaster ) {
58+ if ( isMainProcess ( ) ) {
59+ // 主进程创建定时任务负责文件切割
60+ schedule . scheduleJob ( this . splitTime , async ( ) => {
5961 // 主进程通知各工作进程不要执行写入
6062 for ( const id in cluster . workers ) {
6163 if ( cluster . workers [ id ] ) {
@@ -67,14 +69,15 @@ export default class FileTransport extends Transport {
6769
6870 await new Promise ( ( resolve , reject ) => {
6971 const date = new Date ( ) ;
70- const time = `${ date . getFullYear ( ) } -${ date . getMonth ( ) + 1 } -${ date . getDate ( ) } -${ date . getHours ( ) } ${ date . getMinutes ( ) } ${ date . getSeconds ( ) } ` ;
72+ const time = `${ date . getFullYear ( ) } -${ date . getMonth ( ) + 1 }
73+ -${ date . getDate ( ) } -${ date . getHours ( ) } ${ date . getMinutes ( ) } ${ date . getSeconds ( ) } ` ;
7174
7275 fs . exists ( self . file , ( exist ) => {
73- if ( ! exist ) return resolve ( ) ;
76+ if ( ! exist ) return resolve ( true ) ;
7477 } ) ;
7578 fs . rename ( self . file , `${ self . file } .${ time } ` , ( err ) => {
7679 if ( err ) return reject ( err ) ;
77- resolve ( ) ;
80+ resolve ( true ) ;
7881 } ) ;
7982 } ) ;
8083 self . stream = self . createStream ( ) ;
@@ -85,9 +88,8 @@ export default class FileTransport extends Transport {
8588 cluster . workers [ id ] . send ( { writable : true } ) ;
8689 }
8790 }
88- }
89- } ) ;
90- if ( cluster . isWorker ) {
91+ } ) ;
92+ } else {
9193 process . on ( 'message' , ( msg ) => {
9294 if ( msg . writable ) {
9395 this . reload ( ) ;
@@ -104,10 +106,10 @@ export default class FileTransport extends Transport {
104106 const stream = fs . createWriteStream ( this . file , { flags : 'a' , encoding : this . encoding } ) ;
105107
106108 const onError = ( err : Error ) => {
107- console . error ( '%s ERROR %s [wf -logger] [%s] %s' ,
109+ console . error ( '%s ERROR %s [UMajs -logger] [%s] %s' ,
108110 utility . logDate ( ',' ) , process . pid , this . file , err . stack ) ;
109111 this . reload ( ) ;
110- console . warn ( '%s WARN %s [wf -logger] [%s] reloaded' , utility . logDate ( ',' ) , process . pid , this . file ) ;
112+ console . warn ( '%s WARN %s [UMajs -logger] [%s] reloaded' , utility . logDate ( ',' ) , process . pid , this . file ) ;
111113 } ;
112114
113115 // only listen error once because stream will reload after error
0 commit comments