Skip to content

Commit 52258d0

Browse files
committed
feat(logger): provide a Nest.js logger for runner
1 parent ab2159c commit 52258d0

File tree

4 files changed

+39
-0
lines changed

4 files changed

+39
-0
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
## Current
44

55
- **feat(task)**: provide a `@Task(name)` decorator to define your injectable tasks
6+
- **feat(logger)**: provide a Nest.js logger for GraphileWorker runner
67
- **fix(hooks)**: Set all worker hooks (was only `job:success`)
78
- **refactor(configuration)**: Remove `ConfigurationService` class and use a plain object `RunnerOptions`
89
- **refactor()**: Rename `GraphileWorkerService` to `WorkerService`

src/graphile-worker.module.spec.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ describe(GraphileWorkerModule.name, () => {
4141

4242
expect(runnerOptions.connectionString).toEqual(connectionString);
4343
expect(runnerOptions.events).toBeDefined;
44+
expect(runnerOptions.logger).toBeDefined;
4445
});
4546
});
4647

@@ -72,6 +73,7 @@ describe(GraphileWorkerModule.name, () => {
7273

7374
expect(runnerOptions.connectionString).toEqual(connectionString);
7475
expect(runnerOptions.events).toBeDefined;
76+
expect(runnerOptions.logger).toBeDefined;
7577
});
7678
});
7779
});

src/graphile-worker.module.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import { ListenerExplorerService } from './services/listener-explorer.service';
1111
import { MetadataAccessorService } from './services/metadata-accessor.service';
1212
import { TaskExplorerService } from './services/task-explorer.service';
1313
import { WorkerService } from './services/worker.service';
14+
import { RunnerLogger } from './utils/graphile-worker-logger.utils';
1415

1516
export const GRAPHILE_WORKER_TOKEN = Symbol.for('NestJsGraphileWorker');
1617

@@ -112,6 +113,7 @@ function buildRunnerOptions(
112113

113114
return {
114115
...configuration,
116+
logger: RunnerLogger,
115117
events,
116118
};
117119
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import {
2+
LogFunction,
3+
Logger as GraphileLogger,
4+
LogLevel,
5+
LogMeta,
6+
} from '@graphile/logger';
7+
import { Logger } from '@nestjs/common';
8+
9+
function graphileWorkerLogFactory(_scope): LogFunction {
10+
const logger = new Logger('GraphileWorker');
11+
12+
return (level: LogLevel, message: string, meta?: LogMeta) => {
13+
if (meta !== undefined) {
14+
message += ` - ${JSON.stringify(meta)}`;
15+
}
16+
17+
switch (level) {
18+
case LogLevel.ERROR:
19+
logger.error(message);
20+
break;
21+
case LogLevel.WARNING:
22+
logger.warn(message);
23+
break;
24+
case LogLevel.INFO:
25+
logger.log(message);
26+
break;
27+
case LogLevel.DEBUG:
28+
logger.debug(message, meta);
29+
break;
30+
}
31+
};
32+
}
33+
34+
export const RunnerLogger = new GraphileLogger(graphileWorkerLogFactory);

0 commit comments

Comments
 (0)