From 6c88713f3430e9a406c478fe9738d3793533a8d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Tue, 20 Sep 2022 16:20:52 +0200 Subject: [PATCH 1/3] start inserting logger.addContext for userid --- backend/src/graphql/resolver/UserResolver.ts | 6 +++++- backend/src/server/createServer.ts | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/backend/src/graphql/resolver/UserResolver.ts b/backend/src/graphql/resolver/UserResolver.ts index f2fd048fc..e642117df 100644 --- a/backend/src/graphql/resolver/UserResolver.ts +++ b/backend/src/graphql/resolver/UserResolver.ts @@ -277,6 +277,8 @@ export class UserResolver { logger.error(`User with email=${email} does not exist`) throw new Error('No user with this credentials') }) + logger.addContext('user', dbUser.id) + logger.info(`validation of user still ongoing...`) if (dbUser.deletedAt) { logger.error('The User was permanently deleted in database.') throw new Error('This user was permanently deleted. Contact support for questions.') @@ -303,7 +305,7 @@ export class UserResolver { } // add pubKey in logger-context for layout-pattern X{user} to print it in each logging message logger.addContext('user', dbUser.id) - logger.debug('login credentials valid...') + logger.debug('validation of login credentials successful...') const user = new User(dbUser, await getUserCreation(dbUser.id)) logger.debug('user=' + user) @@ -348,6 +350,7 @@ export class UserResolver { @Args() { email, firstName, lastName, language, publisherId, redeemCode = null }: CreateUserArgs, ): Promise { + logger.addContext('user', 'unknown') logger.info( `createUser(email=${email}, firstName=${firstName}, lastName=${lastName}, language=${language}, publisherId=${publisherId}, redeemCode =${redeemCode})`, ) @@ -483,6 +486,7 @@ export class UserResolver { } await queryRunner.commitTransaction() + logger.addContext('user', dbUser.id) } catch (e) { logger.error(`error during create user with ${e}`) await queryRunner.rollbackTransaction() diff --git a/backend/src/server/createServer.ts b/backend/src/server/createServer.ts index a0b294281..62ea93bf0 100644 --- a/backend/src/server/createServer.ts +++ b/backend/src/server/createServer.ts @@ -35,6 +35,7 @@ const createServer = async ( context: any = serverContext, logger: Logger = apolloLogger, ): Promise => { + logger.addContext('user', 'unknown') logger.debug('createServer...') // open mysql connection From 542b069aa90b5b54cc237b8d906118350694651c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Wed, 21 Sep 2022 04:12:48 +0200 Subject: [PATCH 2/3] reconfig now with rollover feature and userid in logevent-message --- backend/log4js-config.json | 57 +++++++++++++++++++++++++++----------- 1 file changed, 41 insertions(+), 16 deletions(-) diff --git a/backend/log4js-config.json b/backend/log4js-config.json index 848a4fa79..a096713ec 100644 --- a/backend/log4js-config.json +++ b/backend/log4js-config.json @@ -5,41 +5,66 @@ { "type": "dateFile", "filename": "../logs/backend/access.log", - "pattern": "%d{ISO8601} %p %c %X{user} %f:%l %m", + "pattern": "yyyy-MM-dd", + "layout": + { + "type": "pattern", "pattern": "%d{ISO8601} %p %c [%X{user}] %m" + }, "keepFileExt" : true, - "fileNameSep" : "_" + "fileNameSep" : "_", + "numBackups" : 30 }, "apollo": { "type": "dateFile", "filename": "../logs/backend/apollo.log", - "pattern": "%d{ISO8601} %p %c %m", + "pattern": "yyyy-MM-dd", + "layout": + { + "type": "pattern", "pattern": "%d{ISO8601} %p %c [%X{user}] %m" + }, "keepFileExt" : true, - "fileNameSep" : "_" + "fileNameSep" : "_", + "numBackups" : 30 }, "backend": { "type": "dateFile", "filename": "../logs/backend/backend.log", - "pattern": "%d{ISO8601} %p %c %X{user} %f:%l %m", + "pattern": "yyyy-MM-dd", + "layout": + { + "type": "pattern", "pattern": "%d{ISO8601} %p %c [%X{user}] %m" + }, "keepFileExt" : true, - "fileNameSep" : "_" + "fileNameSep" : "_", + "numBackups" : 30 }, "klicktipp": { "type": "dateFile", "filename": "../logs/backend/klicktipp.log", - "pattern": "%d{ISO8601} %p %c %X{user} %f:%l %m", + "pattern": "yyyy-MM-dd", + "layout": + { + "type": "pattern", "pattern": "%d{ISO8601} %p %c [%X{user}] %m" + }, "keepFileExt" : true, - "fileNameSep" : "_" + "fileNameSep" : "_", + "numBackups" : 30 }, "errorFile": { "type": "dateFile", "filename": "../logs/backend/errors.log", - "pattern": "%d{ISO8601} %p %c %X{user} %f:%l %m", + "pattern": "yyyy-MM-dd", + "layout": + { + "type": "pattern", "pattern": "%d{ISO8601} %p %c [%X{user}] %m" + }, "keepFileExt" : true, - "fileNameSep" : "_" + "fileNameSep" : "_", + "numBackups" : 30 }, "errors": { @@ -52,7 +77,7 @@ "type": "stdout", "layout": { - "type": "pattern", "pattern": "%d{ISO8601} %p %c %X{user} %f:%l %m" + "type": "pattern", "pattern": "%d{ISO8601} %p %c [%X{user}] %m" } }, "apolloOut": @@ -60,7 +85,7 @@ "type": "stdout", "layout": { - "type": "pattern", "pattern": "%d{ISO8601} %p %c %m" + "type": "pattern", "pattern": "%d{ISO8601} %p %c [%X{user}] %m" } } }, @@ -74,7 +99,7 @@ "errors" ], "level": "debug", - "enableCallStack": true + "enableCallStack": false }, "apollo": { @@ -85,7 +110,7 @@ "errors" ], "level": "debug", - "enableCallStack": true + "enableCallStack": false }, "backend": { @@ -96,7 +121,7 @@ "errors" ], "level": "debug", - "enableCallStack": true + "enableCallStack": false }, "klicktipp": { @@ -107,7 +132,7 @@ "errors" ], "level": "debug", - "enableCallStack": true + "enableCallStack": false }, "http": { From 3dd66b4527cc37953c2fa6968153b40dc2b10084 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Fri, 23 Sep 2022 00:31:33 +0200 Subject: [PATCH 3/3] small changes in log-pattern Merge remote-tracking branch 'origin/master' into 2220-feature-reconfigure-log4js --- backend/log4js-config.json | 22 ++++++++++---------- backend/src/graphql/resolver/UserResolver.ts | 1 + 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/backend/log4js-config.json b/backend/log4js-config.json index a096713ec..e595e7c52 100644 --- a/backend/log4js-config.json +++ b/backend/log4js-config.json @@ -8,7 +8,7 @@ "pattern": "yyyy-MM-dd", "layout": { - "type": "pattern", "pattern": "%d{ISO8601} %p %c [%X{user}] %m" + "type": "pattern", "pattern": "%d{ISO8601} %p %c [%X{user}] [%f : %l] - %m" }, "keepFileExt" : true, "fileNameSep" : "_", @@ -21,7 +21,7 @@ "pattern": "yyyy-MM-dd", "layout": { - "type": "pattern", "pattern": "%d{ISO8601} %p %c [%X{user}] %m" + "type": "pattern", "pattern": "%d{ISO8601} %p %c [%X{user}] [%f : %l] - %m" }, "keepFileExt" : true, "fileNameSep" : "_", @@ -34,7 +34,7 @@ "pattern": "yyyy-MM-dd", "layout": { - "type": "pattern", "pattern": "%d{ISO8601} %p %c [%X{user}] %m" + "type": "pattern", "pattern": "%d{ISO8601} %p %c [%X{user}] [%f : %l] - %m" }, "keepFileExt" : true, "fileNameSep" : "_", @@ -47,7 +47,7 @@ "pattern": "yyyy-MM-dd", "layout": { - "type": "pattern", "pattern": "%d{ISO8601} %p %c [%X{user}] %m" + "type": "pattern", "pattern": "%d{ISO8601} %p %c [%X{user}] [%f : %l] - %m" }, "keepFileExt" : true, "fileNameSep" : "_", @@ -60,7 +60,7 @@ "pattern": "yyyy-MM-dd", "layout": { - "type": "pattern", "pattern": "%d{ISO8601} %p %c [%X{user}] %m" + "type": "pattern", "pattern": "%d{ISO8601} %p %c [%X{user}] [%f : %l] - %m" }, "keepFileExt" : true, "fileNameSep" : "_", @@ -77,7 +77,7 @@ "type": "stdout", "layout": { - "type": "pattern", "pattern": "%d{ISO8601} %p %c [%X{user}] %m" + "type": "pattern", "pattern": "%d{ISO8601} %p %c [%X{user}] [%f : %l] - %m" } }, "apolloOut": @@ -85,7 +85,7 @@ "type": "stdout", "layout": { - "type": "pattern", "pattern": "%d{ISO8601} %p %c [%X{user}] %m" + "type": "pattern", "pattern": "%d{ISO8601} %p %c [%X{user}] [%f : %l] - %m" } } }, @@ -99,7 +99,7 @@ "errors" ], "level": "debug", - "enableCallStack": false + "enableCallStack": true }, "apollo": { @@ -110,7 +110,7 @@ "errors" ], "level": "debug", - "enableCallStack": false + "enableCallStack": true }, "backend": { @@ -121,7 +121,7 @@ "errors" ], "level": "debug", - "enableCallStack": false + "enableCallStack": true }, "klicktipp": { @@ -132,7 +132,7 @@ "errors" ], "level": "debug", - "enableCallStack": false + "enableCallStack": true }, "http": { diff --git a/backend/src/graphql/resolver/UserResolver.ts b/backend/src/graphql/resolver/UserResolver.ts index 647bf4fc1..1f05a5162 100644 --- a/backend/src/graphql/resolver/UserResolver.ts +++ b/backend/src/graphql/resolver/UserResolver.ts @@ -510,6 +510,7 @@ export class UserResolver { @Authorized([RIGHTS.SEND_RESET_PASSWORD_EMAIL]) @Mutation(() => Boolean) async forgotPassword(@Arg('email') email: string): Promise { + logger.addContext('user', 'unknown') logger.info(`forgotPassword(${email})...`) email = email.trim().toLowerCase() const user = await DbUser.findOne({ email })