configure logger only once. Log Context User ID if present on response

This commit is contained in:
Moriz Wahl 2022-05-04 13:58:45 +02:00
parent 0449dc59e8
commit befa965a44
5 changed files with 26 additions and 21 deletions

View File

@ -1,8 +1,6 @@
import axios from 'axios'
import log4js from 'log4js'
import CONFIG from '@/config'
import log4js from '@/server/logger'
log4js.configure(CONFIG.LOG4JS_CONFIG)
const logger = log4js.getLogger('http')
// eslint-disable-next-line @typescript-eslint/no-explicit-any

View File

@ -1,6 +1,5 @@
import fs from 'fs'
// import log4js from 'log4js'
import log4js from '@/server/logger'
import { Context, getUser } from '@/server/context'
import { Resolver, Query, Args, Arg, Authorized, Ctx, UseMiddleware, Mutation } from 'type-graphql'
@ -24,14 +23,11 @@ import { klicktippSignIn } from '@/apis/KlicktippController'
import { RIGHTS } from '@/auth/RIGHTS'
import { hasElopageBuys } from '@/util/hasElopageBuys'
// eslint-disable-next-line @typescript-eslint/no-var-requires
const sodium = require('sodium-native')
// eslint-disable-next-line @typescript-eslint/no-var-requires
const random = require('random-bigint')
const log4js = require("log4js");
log4js.configure(CONFIG.LOG4JS_CONFIG)
const logger = log4js.getLogger('graphql.UserResolver')
// We will reuse this for changePassword
@ -269,7 +265,7 @@ export class UserResolver {
const user = new User(dbUser)
logger.debug('user=' + user)
// Elopage Status & Stored PublisherId
user.hasElopage = await this.hasElopage({ ...context, user: dbUser })
logger.info('user.hasElopage=' + user.hasElopage)
@ -315,12 +311,20 @@ export class UserResolver {
{ email, firstName, lastName, language, publisherId, redeemCode = null }: CreateUserArgs,
): Promise<User> {
const logger = log4js.getLogger('graphql.resolver.UserResolver')
logger.trace('createUser(email=' + email +
', firstName=' + firstName +
', lastName=' + lastName +
', language=' + language +
', publisherId=' + publisherId +
', redeemCode =' + redeemCode)
logger.trace(
'createUser(email=' +
email +
', firstName=' +
firstName +
', lastName=' +
lastName +
', language=' +
language +
', publisherId=' +
publisherId +
', redeemCode =' +
redeemCode,
)
// TODO: wrong default value (should be null), how does graphql work here? Is it an required field?
// default int publisher_id = 0;
@ -357,7 +361,7 @@ export class UserResolver {
logger.info('new dbUser=' + dbUser)
if (redeemCode) {
const transactionLink = await dbTransactionLink.findOne({ code: redeemCode })
logger.info('redeemCode found transactionLink='+ transactionLink)
logger.info('redeemCode found transactionLink=' + transactionLink)
if (transactionLink) {
dbUser.referrerId = transactionLink.userId
}

View File

@ -1,7 +1,5 @@
import 'reflect-metadata'
import log4js from 'log4js'
import { ApolloServer } from 'apollo-server-express'
import express, { Express } from 'express'
@ -24,16 +22,14 @@ import schema from '@/graphql/schema'
import { elopageWebhook } from '@/webhook/elopage'
import { Connection } from '@dbTools/typeorm'
import log4js from './logger'
// TODO implement
// import queryComplexity, { simpleEstimator, fieldConfigEstimator } from "graphql-query-complexity";
type ServerDef = { apollo: ApolloServer; app: Express; con: Connection }
log4js.configure(CONFIG.LOG4JS_CONFIG)
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const createServer = async (context: any = serverContext): Promise<ServerDef> => {
const logger = log4js.getLogger('server.createServer')
logger.debug('This little thing went to market')
logger.info('This little thing stayed at home')

View File

@ -0,0 +1,6 @@
import log4js from 'log4js'
import CONFIG from '@/config'
log4js.configure(CONFIG.LOG4JS_CONFIG)
export default log4js

View File

@ -36,6 +36,7 @@ const logPlugin = {
${mutation || query}variables: ${JSON.stringify(filterVariables(variables), null, 2)}`)
return {
willSendResponse(requestContext: any) {
if (requestContext.context.user) logger.trace(`User ID: ${requestContext.context.user.id}`)
if (requestContext.response.data)
logger.trace(`Response-Data:
${JSON.stringify(requestContext.response.data, null, 2)}`)