@@ -183,4 +183,95 @@ describe('winston integration', () => {
183183
184184 await runner . completed ( ) ;
185185 } ) ;
186+
187+ test ( 'should map custom winston levels to Sentry severity levels' , async ( ) => {
188+ const runner = createRunner ( __dirname , 'subject.ts' )
189+ . withEnv ( { CUSTOM_LEVEL_MAPPING : 'true' } )
190+ . expect ( {
191+ log : {
192+ items : [
193+ // First, the default logger captures info and error
194+ {
195+ timestamp : expect . any ( Number ) ,
196+ level : 'info' ,
197+ body : 'Test info message' ,
198+ severity_number : expect . any ( Number ) ,
199+ trace_id : expect . any ( String ) ,
200+ attributes : {
201+ 'sentry.origin' : { value : 'auto.log.winston' , type : 'string' } ,
202+ 'sentry.release' : { value : '1.0.0' , type : 'string' } ,
203+ 'sentry.environment' : { value : 'test' , type : 'string' } ,
204+ 'sentry.sdk.name' : { value : 'sentry.javascript.node' , type : 'string' } ,
205+ 'sentry.sdk.version' : { value : expect . any ( String ) , type : 'string' } ,
206+ 'server.address' : { value : expect . any ( String ) , type : 'string' } ,
207+ } ,
208+ } ,
209+ {
210+ timestamp : expect . any ( Number ) ,
211+ level : 'error' ,
212+ body : 'Test error message' ,
213+ severity_number : expect . any ( Number ) ,
214+ trace_id : expect . any ( String ) ,
215+ attributes : {
216+ 'sentry.origin' : { value : 'auto.log.winston' , type : 'string' } ,
217+ 'sentry.release' : { value : '1.0.0' , type : 'string' } ,
218+ 'sentry.environment' : { value : 'test' , type : 'string' } ,
219+ 'sentry.sdk.name' : { value : 'sentry.javascript.node' , type : 'string' } ,
220+ 'sentry.sdk.version' : { value : expect . any ( String ) , type : 'string' } ,
221+ 'server.address' : { value : expect . any ( String ) , type : 'string' } ,
222+ } ,
223+ } ,
224+ // Then the mapped logger uses custom level mappings
225+ {
226+ timestamp : expect . any ( Number ) ,
227+ level : 'fatal' , // 'critical' maps to 'fatal'
228+ body : 'This is a critical message' ,
229+ severity_number : expect . any ( Number ) ,
230+ trace_id : expect . any ( String ) ,
231+ attributes : {
232+ 'sentry.origin' : { value : 'auto.log.winston' , type : 'string' } ,
233+ 'sentry.release' : { value : '1.0.0' , type : 'string' } ,
234+ 'sentry.environment' : { value : 'test' , type : 'string' } ,
235+ 'sentry.sdk.name' : { value : 'sentry.javascript.node' , type : 'string' } ,
236+ 'sentry.sdk.version' : { value : expect . any ( String ) , type : 'string' } ,
237+ 'server.address' : { value : expect . any ( String ) , type : 'string' } ,
238+ } ,
239+ } ,
240+ {
241+ timestamp : expect . any ( Number ) ,
242+ level : 'warn' , // 'warning' maps to 'warn'
243+ body : 'This is a warning message' ,
244+ severity_number : expect . any ( Number ) ,
245+ trace_id : expect . any ( String ) ,
246+ attributes : {
247+ 'sentry.origin' : { value : 'auto.log.winston' , type : 'string' } ,
248+ 'sentry.release' : { value : '1.0.0' , type : 'string' } ,
249+ 'sentry.environment' : { value : 'test' , type : 'string' } ,
250+ 'sentry.sdk.name' : { value : 'sentry.javascript.node' , type : 'string' } ,
251+ 'sentry.sdk.version' : { value : expect . any ( String ) , type : 'string' } ,
252+ 'server.address' : { value : expect . any ( String ) , type : 'string' } ,
253+ } ,
254+ } ,
255+ {
256+ timestamp : expect . any ( Number ) ,
257+ level : 'info' , // 'notice' maps to 'info'
258+ body : 'This is a notice message' ,
259+ severity_number : expect . any ( Number ) ,
260+ trace_id : expect . any ( String ) ,
261+ attributes : {
262+ 'sentry.origin' : { value : 'auto.log.winston' , type : 'string' } ,
263+ 'sentry.release' : { value : '1.0.0' , type : 'string' } ,
264+ 'sentry.environment' : { value : 'test' , type : 'string' } ,
265+ 'sentry.sdk.name' : { value : 'sentry.javascript.node' , type : 'string' } ,
266+ 'sentry.sdk.version' : { value : expect . any ( String ) , type : 'string' } ,
267+ 'server.address' : { value : expect . any ( String ) , type : 'string' } ,
268+ } ,
269+ } ,
270+ ] ,
271+ } ,
272+ } )
273+ . start ( ) ;
274+
275+ await runner . completed ( ) ;
276+ } ) ;
186277} ) ;
0 commit comments