@@ -117,7 +117,7 @@ class Logger extends Utility implements ClassThatLogs {
117
117
118
118
private customConfigService ?: ConfigServiceInterface ;
119
119
120
- private static readonly defaultLogLevel : LogLevel = 'INFO' ;
120
+ private static readonly defaultLogLevel : Uppercase < LogLevel > = 'INFO' ;
121
121
122
122
// envVarsService is always initialized in the constructor in setOptions()
123
123
private envVarsService ! : EnvironmentVariablesService ;
@@ -128,7 +128,7 @@ class Logger extends Utility implements ClassThatLogs {
128
128
129
129
private logIndentation : number = LogJsonIndent . COMPACT ;
130
130
131
- private logLevel ?: LogLevel ;
131
+ private logLevel ?: Uppercase < LogLevel > ;
132
132
133
133
private readonly logLevelThresholds : LogLevelThresholds = {
134
134
DEBUG : 8 ,
@@ -554,12 +554,16 @@ class Logger extends Utility implements ClassThatLogs {
554
554
555
555
/**
556
556
* It returns the log level set for the Logger instance.
557
+ *
558
+ * Even though logLevel starts as undefined, it will always be set to a value
559
+ * during the Logger instance's initialization. So, we can safely use the non-null
560
+ * assertion operator here.
557
561
*
558
562
* @private
559
563
* @returns {LogLevel }
560
564
*/
561
- private getLogLevel ( ) : LogLevel {
562
- return < LogLevel > this . logLevel ;
565
+ private getLogLevel ( ) : Uppercase < LogLevel > {
566
+ return this . logLevel ! ;
563
567
}
564
568
565
569
/**
@@ -619,14 +623,14 @@ class Logger extends Utility implements ClassThatLogs {
619
623
}
620
624
621
625
/**
622
- * It returns true if the provided log level is valid.
626
+ * It returns true and type guards the log level if a given log level is valid.
623
627
*
624
628
* @param {LogLevel } logLevel
625
629
* @private
626
630
* @returns {boolean }
627
631
*/
628
- private isValidLogLevel ( logLevel ?: LogLevel ) : boolean {
629
- return typeof logLevel === 'string' && logLevel . toUpperCase ( ) in this . logLevelThresholds ;
632
+ private isValidLogLevel ( logLevel ?: LogLevel | string ) : logLevel is LogLevel {
633
+ return typeof logLevel === 'string' && logLevel in this . logLevelThresholds ;
630
634
}
631
635
632
636
/**
@@ -648,7 +652,8 @@ class Logger extends Utility implements ClassThatLogs {
648
652
* It prints a given log with given log level.
649
653
*
650
654
* @param {LogLevel } logLevel
651
- * @param {LogItem } log
655
+ * @param {LogItemMessage } input
656
+ * @param {LogItemExtraInput } extraInput
652
657
* @private
653
658
*/
654
659
private processLogItem ( logLevel : LogLevel , input : LogItemMessage , extraInput : LogItemExtraInput ) : void {
@@ -744,19 +749,19 @@ class Logger extends Utility implements ClassThatLogs {
744
749
*/
745
750
private setLogLevel ( logLevel ?: LogLevel ) : void {
746
751
if ( this . isValidLogLevel ( logLevel ) ) {
747
- this . logLevel = ( < LogLevel > logLevel ) . toUpperCase ( ) ;
752
+ this . logLevel = logLevel ? .toUpperCase ( ) as Uppercase < LogLevel > ;
748
753
749
754
return ;
750
755
}
751
756
const customConfigValue = this . getCustomConfigService ( ) ?. getLogLevel ( ) ;
752
757
if ( this . isValidLogLevel ( customConfigValue ) ) {
753
- this . logLevel = ( < LogLevel > customConfigValue ) . toUpperCase ( ) ;
758
+ this . logLevel = customConfigValue ? .toUpperCase ( ) as Uppercase < LogLevel > ;
754
759
755
760
return ;
756
761
}
757
762
const envVarsValue = this . getEnvVarsService ( ) . getLogLevel ( ) ;
758
763
if ( this . isValidLogLevel ( envVarsValue ) ) {
759
- this . logLevel = ( < LogLevel > envVarsValue ) . toUpperCase ( ) ;
764
+ this . logLevel = envVarsValue ? .toUpperCase ( ) as Uppercase < LogLevel > ;
760
765
761
766
return ;
762
767
}
@@ -845,14 +850,15 @@ class Logger extends Utility implements ClassThatLogs {
845
850
/**
846
851
* It checks whether the current log item should/can be printed.
847
852
*
848
- * @param {string } serviceName
849
- * @param {Environment } environment
850
- * @param {LogAttributes } persistentLogAttributes
853
+ * @param {LogLevel } logLevel
851
854
* @private
852
855
* @returns {boolean }
853
856
*/
854
857
private shouldPrint ( logLevel : LogLevel ) : boolean {
855
- if ( this . logLevelThresholds [ logLevel ] >= this . logLevelThresholds [ this . getLogLevel ( ) ] ) {
858
+ if (
859
+ this . logLevelThresholds [ logLevel . toUpperCase ( ) as Uppercase < LogLevel > ] >=
860
+ this . logLevelThresholds [ this . getLogLevel ( ) ]
861
+ ) {
856
862
return true ;
857
863
}
858
864
0 commit comments