@@ -30,16 +30,19 @@ interface ILog {
3030 message : string ;
3131}
3232
33- function log ( logger : spdlog . RotatingLogger , level : LogLevel , message : string ) : void {
33+ function log ( logger : spdlog . RotatingLogger , level : LogLevel , message : string , sync : boolean ) : void {
3434 switch ( level ) {
35- case LogLevel . Trace : return logger . trace ( message ) ;
36- case LogLevel . Debug : return logger . debug ( message ) ;
37- case LogLevel . Info : return logger . info ( message ) ;
38- case LogLevel . Warning : return logger . warn ( message ) ;
39- case LogLevel . Error : return logger . error ( message ) ;
40- case LogLevel . Critical : return logger . critical ( message ) ;
35+ case LogLevel . Trace : logger . trace ( message ) ; break ;
36+ case LogLevel . Debug : logger . debug ( message ) ; break ;
37+ case LogLevel . Info : logger . info ( message ) ; break ;
38+ case LogLevel . Warning : logger . warn ( message ) ; break ;
39+ case LogLevel . Error : logger . error ( message ) ; break ;
40+ case LogLevel . Critical : logger . critical ( message ) ; break ;
4141 default : throw new Error ( 'Invalid log level' ) ;
4242 }
43+ if ( sync ) {
44+ logger . flush ( ) ;
45+ }
4346}
4447
4548export class SpdLogService extends AbstractLogService implements ILogService {
@@ -50,7 +53,7 @@ export class SpdLogService extends AbstractLogService implements ILogService {
5053 private _loggerCreationPromise : Promise < void > | undefined = undefined ;
5154 private _logger : spdlog . RotatingLogger | undefined ;
5255
53- constructor ( private readonly name : string , private readonly logsFolder : string , level : LogLevel ) {
56+ constructor ( private readonly name : string , private readonly logsFolder : string , level : LogLevel , private readonly sync : boolean = false ) {
5457 super ( ) ;
5558 this . setLevel ( level ) ;
5659 this . _createSpdLogLogger ( ) ;
@@ -69,7 +72,7 @@ export class SpdLogService extends AbstractLogService implements ILogService {
6972 this . _logger = logger ;
7073 this . _logger . setLevel ( this . getLevel ( ) ) ;
7174 for ( const { level, message } of this . buffer ) {
72- log ( this . _logger , level , message ) ;
75+ log ( this . _logger , level , message , this . sync ) ;
7376 }
7477 this . buffer = [ ] ;
7578 }
@@ -80,7 +83,7 @@ export class SpdLogService extends AbstractLogService implements ILogService {
8083
8184 private _log ( level : LogLevel , message : string ) : void {
8285 if ( this . _logger ) {
83- log ( this . _logger , level , message ) ;
86+ log ( this . _logger , level , message , this . sync ) ;
8487 } else if ( this . getLevel ( ) <= level ) {
8588 this . buffer . push ( { level, message } ) ;
8689 }
0 commit comments