Skip to content

Logging and error updates#20

Merged
doneill merged 6 commits intodevelopfrom
task/jdo-47-improve-logging
Sep 8, 2025
Merged

Logging and error updates#20
doneill merged 6 commits intodevelopfrom
task/jdo-47-improve-logging

Conversation

@doneill
Copy link
Copy Markdown
Owner

@doneill doneill commented Sep 8, 2025

General updates to improve logging and error handling

Proposed Changes:

  • Added winston logging framework dependency
  • Created structure logger utility
  • Contextualized logging with timestamps, levels, and metadata
  • Created custom error classes
    • ValidationError - Input validation failures (HTTP 400)
    • DataNotFoundError - Missing tables/geometry (HTTP 404)
    • DatabaseError - Database operation failures (HTTP 500)
    • ConfigurationError - System configuration issues (HTTP 500)
  • Standardized Error Handling
  • Added tests

Test

  • Confirm development log format
  2025-09-08T02:52:11.646Z warn: [Model] The "id" parameter must be in the form of "schema.table" {"details":{"providedId":"invalid","schema":"invalid"}}

Run tests

  • test/errors.test.js - Custom error classes
  • test/logger.test.js - Logger utility
  • test/model.test.js - Model error handling
  • test/data-repository.test.js - Database repository errors
  • test/db.test.js - Original database config test
npm test

 PASS  test/model.test.js
 PASS  test/logger.test.js
  ● Console

    console.log
      2025-09-08T03:10:44.221Z info: [TestContext] Test message {"service":"koop-provider-pg","version":"1.0.9","extra":"data"}

      at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23)

    console.log
      2025-09-08T03:10:44.230Z error: [TestContext] Error occurred {"service":"koop-provider-pg","version":"1.0.9","error":{"message":"Test error","stack":"Error: Test error\n    at Object.<anonymous> (/Users/dano/dev/github-doneill/koop-provider-pg/test/logger.test.js:48:25)\n    at Promise.then.completed (/Users/dano/dev/github-doneill/koop-provider-pg/node_modules/jest-circus/build/utils.js:298:28)\n    at new Promise (<anonymous>)\n    at callAsyncCircusFn (/Users/dano/dev/github-doneill/koop-provider-pg/node_modules/jest-circus/build/utils.js:231:10)\n    at _callCircusTest (/Users/dano/dev/github-doneill/koop-provider-pg/node_modules/jest-circus/build/run.js:316:40)\n    at _runTest (/Users/dano/dev/github-doneill/koop-provider-pg/node_modules/jest-circus/build/run.js:252:3)\n    at _runTestsForDescribeBlock (/Users/dano/dev/github-doneill/koop-provider-pg/node_modules/jest-circus/build/run.js:126:9)\n    at _runTestsForDescribeBlock (/Users/dano/dev/github-doneill/koop-provider-pg/node_modules/jest-circus/build/run.js:121:9)\n    at _runTestsForDescribeBlock (/Users/dano/dev/github-doneill/koop-provider-pg/node_modules/jest-circus/build/run.js:121:9)\n    at run (/Users/dano/dev/github-doneill/koop-provider-pg/node_modules/jest-circus/build/run.js:71:3)\n    at runAndTransformResultsToJestFormat (/Users/dano/dev/github-doneill/koop-provider-pg/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)\n    at jestAdapter (/Users/dano/dev/github-doneill/koop-provider-pg/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)\n    at runTestInternal (/Users/dano/dev/github-doneill/koop-provider-pg/node_modules/jest-runner/build/runTest.js:367:16)\n    at runTest (/Users/dano/dev/github-doneill/koop-provider-pg/node_modules/jest-runner/build/runTest.js:444:34)","name":"Error"},"extra":"data"}

      at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23)

    console.log
      2025-09-08T03:10:44.231Z error: [TestContext] Error occurred {"service":"koop-provider-pg","version":"1.0.9","extra":"data"}

      at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23)

    console.log
      2025-09-08T03:10:44.231Z warn: [TestContext] Warning message {"service":"koop-provider-pg","version":"1.0.9"}

      at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23)

 PASS  test/data-repository.test.js
 PASS  test/db.test.js
 PASS  test/errors.test.js

Test Suites: 5 passed, 5 total
Tests:       27 passed, 27 total
Snapshots:   0 total
Time:        0.32 s, estimated 1 s

@doneill doneill self-assigned this Sep 8, 2025
@doneill doneill merged commit 1f2b1ea into develop Sep 8, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant