feat(reporter-pino): don't log the full metadata object for each migration

This commit is contained in:
Joakim Carlstein 2023-12-12 15:25:22 +01:00
parent e7288fcbfb
commit 09181f284d
2 changed files with 23 additions and 9 deletions

View file

@ -0,0 +1,5 @@
---
'@emigrate/reporter-pino': minor
---
Only log the relative file path to the migration instead of the full metadata object

View file

@ -82,7 +82,7 @@ class PinoReporter implements Required<EmigrateReporter> {
const failedMigrations = nonLockedMigrations.filter( const failedMigrations = nonLockedMigrations.filter(
(migration) => 'status' in migration && migration.status === 'failed', (migration) => 'status' in migration && migration.status === 'failed',
); );
const unlockableCount = nonLockedMigrations.length - failedMigrations.length; const unlockableCount = this.#command === 'up' ? nonLockedMigrations.length - failedMigrations.length : 0;
const parts = [ const parts = [
`${lockedMigrations.length} of ${migrations.length} pending migrations to run`, `${lockedMigrations.length} of ${migrations.length} pending migrations to run`,
unlockableCount > 0 ? `(${unlockableCount} locked)` : '', unlockableCount > 0 ? `(${unlockableCount} locked)` : '',
@ -93,35 +93,44 @@ class PinoReporter implements Required<EmigrateReporter> {
} }
onNewMigration(migration: MigrationMetadata, content: string): Awaitable<void> { onNewMigration(migration: MigrationMetadata, content: string): Awaitable<void> {
this.#logger.info({ migration, content }, `Created new migration file: ${migration.name}`); this.#logger.info(
{ migration: migration.relativeFilePath, content },
`Created new migration file: ${migration.name}`,
);
} }
onMigrationRemoveStart(migration: MigrationMetadata): Awaitable<void> { onMigrationRemoveStart(migration: MigrationMetadata): Awaitable<void> {
this.#logger.debug({ migration }, `Removing migration: ${migration.name}`); this.#logger.debug({ migration: migration.relativeFilePath }, `Removing migration: ${migration.name}`);
} }
onMigrationRemoveSuccess(migration: MigrationMetadataFinished): Awaitable<void> { onMigrationRemoveSuccess(migration: MigrationMetadataFinished): Awaitable<void> {
this.#logger.info({ migration }, `Successfully removed migration: ${migration.name}`); this.#logger.info({ migration: migration.relativeFilePath }, `Successfully removed migration: ${migration.name}`);
} }
onMigrationRemoveError(migration: MigrationMetadataFinished, error: Error): Awaitable<void> { onMigrationRemoveError(migration: MigrationMetadataFinished, error: Error): Awaitable<void> {
this.#logger.error({ migration, [this.errorKey]: error }, `Failed to remove migration: ${migration.name}`); this.#logger.error(
{ migration: migration.relativeFilePath, [this.errorKey]: error },
`Failed to remove migration: ${migration.name}`,
);
} }
onMigrationStart(migration: MigrationMetadata): Awaitable<void> { onMigrationStart(migration: MigrationMetadata): Awaitable<void> {
this.#logger.info({ migration }, `${migration.name} (running)`); this.#logger.info({ migration: migration.relativeFilePath }, `${migration.name} (running)`);
} }
onMigrationSuccess(migration: MigrationMetadataFinished): Awaitable<void> { onMigrationSuccess(migration: MigrationMetadataFinished): Awaitable<void> {
this.#logger.info({ migration }, `${migration.name} (${migration.status})`); this.#logger.info({ migration: migration.relativeFilePath }, `${migration.name} (${migration.status})`);
} }
onMigrationError(migration: MigrationMetadataFinished, error: Error): Awaitable<void> { onMigrationError(migration: MigrationMetadataFinished, error: Error): Awaitable<void> {
this.#logger.error({ migration, [this.errorKey]: error }, `${migration.name} (${migration.status})`); this.#logger.error(
{ migration: migration.relativeFilePath, [this.errorKey]: error },
`${migration.name} (${migration.status})`,
);
} }
onMigrationSkip(migration: MigrationMetadataFinished): Awaitable<void> { onMigrationSkip(migration: MigrationMetadataFinished): Awaitable<void> {
this.#logger.info({ migration }, `${migration.name} (${migration.status})`); this.#logger.info({ migration: migration.relativeFilePath }, `${migration.name} (${migration.status})`);
} }
onFinished(migrations: MigrationMetadataFinished[], error?: Error | undefined): Awaitable<void> { onFinished(migrations: MigrationMetadataFinished[], error?: Error | undefined): Awaitable<void> {