Skip to content

Commit e4c36fd

Browse files
committed
Require named loggers
We want to make it easy for files to create loggers that point back to the file generating a given log. By exposing ONLY `getLogger` method we support a cleaner for the logger syntax for the logger (rather than importing `logger` and having to use `childLogger` in our code, we can just import `getChildLogger` and assign the child logger to a local `logger` value). This also ensures that all loggers are generated with a name (I suppose someone could choose to name with an empty string).
1 parent 1f60344 commit e4c36fd

5 files changed

Lines changed: 13 additions & 6 deletions

File tree

src/app.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
import express from 'express';
22
import pinoHttp from 'pino-http';
33
import { rootRouter } from './routers';
4-
import { logger } from './logger';
4+
import { getLogger } from './logger';
55

6+
const logger = getLogger(__filename);
67
const app = express();
78
app.use(pinoHttp({
89
logger,

src/handlers/canonicalFieldsHandlers.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { logger } from '../logger';
1+
import { getLogger } from '../logger';
22
import { db } from '../database';
33
import { isCanonicalFieldArray } from '../types';
44
import { ValidationError } from '../errors';
@@ -7,6 +7,8 @@ import type {
77
Response,
88
} from 'express';
99

10+
const logger = getLogger(__filename);
11+
1012
const getCanonicalFields = (req: Request, res: Response): void => {
1113
db.sql('canonicalFields.fetchAll')
1214
.then((canonicalFields) => {

src/index.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import dotenv from 'dotenv';
22
import { app } from './app';
3-
import { logger } from './logger';
3+
import { getLogger } from './logger';
44

5+
const logger = getLogger(__filename);
56
dotenv.config();
67

78
const port = Number(process.env.PORT ?? 3000);

src/logger.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
import pino from 'pino';
2+
import type {
3+
Logger,
4+
} from 'pino';
25

36
const logger = pino({
47
level: process.env.LOG_LEVEL ?? 'silent',
58
});
69

7-
export { logger };
10+
export const getLogger = (name: string): Logger => logger.child({ name });

src/scripts/migrate.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import { logger as root_logger } from '../logger';
1+
import { getLogger } from '../logger';
22
import { migrate } from '../database';
33

4-
const logger = root_logger.child({ source: 'migrate' });
4+
const logger = getLogger(__filename);
55

66
logger.info('Starting migrations...');
77
migrate()

0 commit comments

Comments
 (0)