File tree 2 files changed +18
-5
lines changed
2 files changed +18
-5
lines changed Original file line number Diff line number Diff line change 1
1
import pino from 'pino'
2
2
import { getConfig } from '../utils/config'
3
+ import { FastifyRequest } from 'fastify'
4
+ import { URL } from 'url'
3
5
4
6
const { logLevel } = getConfig ( )
5
7
6
8
export const logger = pino ( {
7
9
transport : buildTransport ( ) ,
8
10
formatters : {
9
- level ( label , number ) {
10
- return { level : number }
11
+ level ( label ) {
12
+ return { level : label }
11
13
} ,
12
14
} ,
13
15
serializers : {
14
16
res ( reply ) {
15
17
return {
16
- url : reply . url ,
17
18
statusCode : reply . statusCode ,
18
19
}
19
20
} ,
20
21
req ( request ) {
21
22
return {
22
23
method : request . method ,
23
- url : request . url ,
24
+ url : redactQueryParamFromRequest ( request , [ 'token' ] ) ,
24
25
headers : whitelistHeaders ( request . headers ) ,
25
26
hostname : request . hostname ,
26
27
remoteAddress : request . ip ,
@@ -92,3 +93,14 @@ const whitelistHeaders = (headers: Record<string, unknown>) => {
92
93
93
94
return responseMetadata
94
95
}
96
+
97
+ export function redactQueryParamFromRequest ( req : FastifyRequest , params : string [ ] ) {
98
+ const lUrl = new URL ( req . url , `${ req . protocol } ://${ req . hostname } ` )
99
+
100
+ params . forEach ( ( param ) => {
101
+ if ( lUrl . searchParams . has ( param ) ) {
102
+ lUrl . searchParams . set ( param , 'redacted' )
103
+ }
104
+ } )
105
+ return `${ lUrl . pathname } ${ lUrl . search } `
106
+ }
Original file line number Diff line number Diff line change 1
1
import fastifyPlugin from 'fastify-plugin'
2
+ import { redactQueryParamFromRequest } from '../monitoring'
2
3
3
4
interface RequestLoggerOptions {
4
5
excludeUrls ?: string [ ]
@@ -12,7 +13,7 @@ export default (options: RequestLoggerOptions) =>
12
13
}
13
14
14
15
const rMeth = req . method
15
- const rUrl = req . url
16
+ const rUrl = redactQueryParamFromRequest ( req , [ 'token' ] )
16
17
const uAgent = req . headers [ 'user-agent' ]
17
18
const rId = req . id
18
19
const cIP = req . ip
You can’t perform that action at this time.
0 commit comments