@@ -35,15 +35,18 @@ type Middleware = ReturnType<typeof commonMiddleware.express.makeMiddleware>;
3535
3636export async function makeMiddleware (
3737 logger : winston . Logger ,
38- transport : LoggingWinston
38+ transport : LoggingWinston ,
39+ skipParentEntryForCloudRun ?: boolean
3940) : Promise < Middleware > ;
4041export async function makeMiddleware (
4142 logger : winston . Logger ,
42- options ?: Options
43+ options ?: Options ,
44+ skipParentEntryForCloudRun ?: boolean
4345) : Promise < Middleware > ;
4446export async function makeMiddleware (
4547 logger : winston . Logger ,
46- optionsOrTransport ?: Options | LoggingWinston
48+ optionsOrTransport ?: Options | LoggingWinston ,
49+ skipParentEntryForCloudRun ?: boolean
4750) : Promise < Middleware > {
4851 let transport : LoggingWinston ;
4952
@@ -79,8 +82,15 @@ export async function makeMiddleware(
7982 // parent request log entry that all the request specific logs ("app logs")
8083 // will nest under. GAE and GCF generate the parent request logs
8184 // automatically.
85+ // Cloud Run also generates the parent request log automatically, but skipping
86+ // the parent request entry has to be explicity enabled until the next major
87+ // release in which we can change the default behavior.
8288 let emitRequestLogEntry ;
83- if ( env !== GCPEnv . APP_ENGINE && env !== GCPEnv . CLOUD_FUNCTIONS ) {
89+ if (
90+ env !== GCPEnv . APP_ENGINE &&
91+ env !== GCPEnv . CLOUD_FUNCTIONS &&
92+ ( env !== GCPEnv . CLOUD_RUN || ! skipParentEntryForCloudRun )
93+ ) {
8494 const requestLogName = Log . formatName_ (
8595 projectId ,
8696 `${ transport . common . logName } ${ REQUEST_LOG_SUFFIX } `
0 commit comments