1
- import type { LogData , LogRecord , LogFormatter } from './types' ;
1
+ import type { ToString , LogData , LogRecord , LogFormatter } from './types' ;
2
2
import type Handler from './Handler' ;
3
3
import { LogLevel } from './types' ;
4
4
import ConsoleErrHandler from './handlers/ConsoleErrHandler' ;
@@ -83,10 +83,14 @@ class Logger {
83
83
delete this . filter ;
84
84
}
85
85
86
- public debug ( msg : string , format ?: LogFormatter ) : void ;
87
- public debug ( msg : string , data : LogData , format ?: LogFormatter ) : void ;
86
+ public debug ( msg : ToString | undefined , format ?: LogFormatter ) : void ;
88
87
public debug (
89
- msg : string ,
88
+ msg : ToString | undefined ,
89
+ data : LogData ,
90
+ format ?: LogFormatter ,
91
+ ) : void ;
92
+ public debug (
93
+ msg : ToString | undefined ,
90
94
formatOrData ?: LogFormatter | LogData ,
91
95
format ?: LogFormatter ,
92
96
) : void {
@@ -97,10 +101,14 @@ class Logger {
97
101
}
98
102
}
99
103
100
- public info ( msg : string , format ?: LogFormatter ) : void ;
101
- public info ( msg : string , data : LogData , format ?: LogFormatter ) : void ;
104
+ public info ( msg : ToString | undefined , format ?: LogFormatter ) : void ;
105
+ public info (
106
+ msg : ToString | undefined ,
107
+ data : LogData ,
108
+ format ?: LogFormatter ,
109
+ ) : void ;
102
110
public info (
103
- msg : string ,
111
+ msg : ToString | undefined ,
104
112
formatOrData ?: LogFormatter | LogData ,
105
113
format ?: LogFormatter ,
106
114
) : void {
@@ -111,10 +119,14 @@ class Logger {
111
119
}
112
120
}
113
121
114
- public warn ( msg : string , format ?: LogFormatter ) : void ;
115
- public warn ( msg : string , data : LogData , format ?: LogFormatter ) : void ;
122
+ public warn ( msg : ToString | undefined , format ?: LogFormatter ) : void ;
116
123
public warn (
117
- msg : string ,
124
+ msg : ToString | undefined ,
125
+ data : LogData ,
126
+ format ?: LogFormatter ,
127
+ ) : void ;
128
+ public warn (
129
+ msg : ToString | undefined ,
118
130
formatOrData ?: LogFormatter | LogData ,
119
131
format ?: LogFormatter ,
120
132
) : void {
@@ -125,10 +137,14 @@ class Logger {
125
137
}
126
138
}
127
139
128
- public error ( msg : string , format ?: LogFormatter ) : void ;
129
- public error ( msg : string , data : LogData , format ?: LogFormatter ) : void ;
140
+ public error ( msg : ToString | undefined , format ?: LogFormatter ) : void ;
141
+ public error (
142
+ msg : ToString | undefined ,
143
+ data : LogData ,
144
+ format ?: LogFormatter ,
145
+ ) : void ;
130
146
public error (
131
- msg : string ,
147
+ msg : ToString | undefined ,
132
148
formatOrData ?: LogFormatter | LogData ,
133
149
format ?: LogFormatter ,
134
150
) : void {
@@ -140,11 +156,13 @@ class Logger {
140
156
}
141
157
142
158
protected log (
143
- msg : string ,
159
+ msg : ToString | undefined ,
144
160
data : LogData ,
145
161
level : LogLevel ,
146
162
format ?: LogFormatter ,
147
163
) : void {
164
+ // Filter on level before making a record
165
+ if ( level < this . getEffectiveLevel ( ) ) return ;
148
166
const record = this . makeRecord ( msg , data , level ) ;
149
167
this . callHandlers ( record , level , format ) ;
150
168
}
@@ -154,13 +172,17 @@ class Logger {
154
172
* The `LogRecord` can contain lazy values via wrapping with a lambda
155
173
* This improves performance as they are not evaluated unless needed during formatting
156
174
*/
157
- protected makeRecord ( msg : string , data : LogData , level : LogLevel ) : LogRecord {
175
+ protected makeRecord (
176
+ msg : ToString | undefined ,
177
+ data : LogData ,
178
+ level : LogLevel ,
179
+ ) : LogRecord {
158
180
return {
159
181
logger : this ,
160
182
key : this . key ,
161
183
date : new Date ( ) ,
162
184
level,
163
- msg,
185
+ msg : msg ?. toString ( ) ,
164
186
data,
165
187
keys : ( ) => {
166
188
let logger : Logger = this ;
@@ -197,9 +219,9 @@ class Logger {
197
219
format ?: LogFormatter ,
198
220
keys : Array < string > = [ ] ,
199
221
) : void {
200
- if ( level < this . getEffectiveLevel ( ) ) {
201
- return ;
202
- }
222
+ // Filter on level before calling handlers
223
+ // This is also called when traversing up the parent
224
+ if ( level < this . getEffectiveLevel ( ) ) return ;
203
225
keys . push ( this . key ) ;
204
226
if ( this . filter != null ) {
205
227
const keysPath = keys . reduce ( ( prev , curr ) => `${ curr } .${ prev } ` ) ;
0 commit comments