Add correlationId to SqlLogger

This commit is contained in:
Jerko Steiner 2019-03-23 20:50:10 +08:00
parent cc360afbbe
commit 93b048bc10
4 changed files with 29 additions and 12 deletions

View File

@ -42,8 +42,6 @@ export class TeamManager extends React.PureComponent<ITeamManagerProps> {
const editTeamId = this.props.match.params.teamId !== undefined ? const editTeamId = this.props.match.params.teamId !== undefined ?
Number(this.props.match.params.teamId) : undefined Number(this.props.match.params.teamId) : undefined
console.log('props', this.props)
return ( return (
<React.Fragment> <React.Fragment>
<TeamList <TeamList

View File

@ -26,7 +26,8 @@ export class Bootstrap implements IBootstrap {
} }
protected createDatabase(): IDatabase { protected createDatabase(): IDatabase {
const sqlLogger = new SqlLogger(loggerFactory.getLogger('sql')) const sqlLogger = new SqlLogger(
loggerFactory.getLogger('sql'), this.namespace)
return new Database(this.namespace, sqlLogger, this.config.app.db) return new Database(this.namespace, sqlLogger, this.config.app.db)
} }

View File

@ -9,7 +9,7 @@ import {SqlLogger, loggerFactory} from '../logger'
const ns = createNamespace('clsify-test') const ns = createNamespace('clsify-test')
const database = new Database( const database = new Database(
ns, ns,
new SqlLogger(loggerFactory.getLogger('sql')), new SqlLogger(loggerFactory.getLogger('sql'), ns),
config.app.db, config.app.db,
) )

View File

@ -1,14 +1,20 @@
import {ILogger} from './ILogger' import {ILogger} from './ILogger'
import {Logger, QueryRunner} from 'typeorm' import {Logger, QueryRunner} from 'typeorm'
import {Namespace} from 'cls-hooked'
import {CORRELATION_ID} from '../middleware/Transaction'
export class SqlLogger implements Logger { export class SqlLogger implements Logger {
constructor(protected readonly logger: ILogger) {} constructor(
protected readonly logger: ILogger,
protected readonly ns: Namespace,
) {}
logQuery(query: string, parameters?: any[], queryRunner?: QueryRunner): any { logQuery(query: string, parameters?: any[], queryRunner?: QueryRunner): any {
const correlationId = this.getCorrelationId()
if (parameters) { if (parameters) {
this.logger.info('%s -- %s', query, parameters) this.logger.info('%s %s -- %s', correlationId, query, parameters)
} else { } else {
this.logger.info(query) this.logger.info('%s %s', correlationId, query)
} }
} }
/** /**
@ -20,10 +26,12 @@ export class SqlLogger implements Logger {
parameters?: any[], parameters?: any[],
queryRunner?: QueryRunner, queryRunner?: QueryRunner,
) { ) {
const correlationId = this.getCorrelationId()
if (parameters) { if (parameters) {
this.logger.error('%s :: %s -- %s', error, query, parameters) this.logger.error('%s %s :: %s -- %s',
correlationId, error, query, parameters)
} else { } else {
this.logger.error('%s :: %s', error, query) this.logger.error('%s %s :: %s', correlationId, error, query)
} }
} }
/** /**
@ -34,10 +42,13 @@ export class SqlLogger implements Logger {
parameters?: any[], parameters?: any[],
queryRunner?: QueryRunner, queryRunner?: QueryRunner,
) { ) {
const correlationId = this.getCorrelationId()
if (parameters) { if (parameters) {
this.logger.warn('Slow query: %d :: %s -- %s', time, query, parameters) this.logger.warn('%s Slow query: %d :: %s -- %s',
correlationId, time, query, parameters)
} else { } else {
this.logger.warn('Slow query: %d :: %s', time, query) this.logger.warn('%s Slow query: %d :: %s',
correlationId, time, query)
} }
} }
/** /**
@ -61,9 +72,16 @@ export class SqlLogger implements Logger {
message: any, message: any,
queryRunner?: QueryRunner, queryRunner?: QueryRunner,
) { ) {
const correlationId = this.getCorrelationId()
if (level === 'log') { if (level === 'log') {
level = 'info' level = 'info'
} }
this.logger[level]('%o', message) this.logger[level]('%s %o', correlationId, message)
} }
protected getCorrelationId(): string | undefined {
const correlationId: string = this.ns.get(CORRELATION_ID)
return correlationId || ''
}
} }