networktocode/diffsync

Feature to pass logger into Backend or sync_from/sync_to methods

jamesharr opened this issue · 0 comments

Environment

  • DiffSync version: 1.9.0

Proposed Functionality

DiffSync currently establishes its own logger method. This feature would allow the user of DiffSync to pass in a structlog logger with some bound context data, or even pass in a structlog-compatible logger to replace the existing logger.

Below, two examples are provided. This feature would not require both be implemented.

Example usage:

First example - pass logger into backend

my_logger = structlog.get_logger().bind(
    triggered_by="user7@example.com",
    trace_id=str(uuid.uuid4()),
)

be1 = MyDiffSyncBackend(loggger=my_logger)
be1.load()
...
be1.sync_to(be2)

Second example - pass logger into sync methods

my_logger = structlog.get_logger().bind(
    triggered_by="user7@example.com",
    trace_id=str(uuid.uuid4()),
)

be1 = MyDiffSyncBackend()
be1.load()
...
be1.sync_to(be2, logger=my_logger)

Use Case

  • Provide additional context to each log message using structlog's bind.
  • Provide alternate logger to diffsync