Skip to content

Conversation

@Brian-McM
Copy link
Contributor

@Brian-McM Brian-McM commented Feb 14, 2025

Description

This commit adds custom logging interface to wrap our logger implementation (currently logrus) in the lib/std folder and move all logutilities into the lib/log folder. This replaces all references to logrus and libcalico/logutils in the project to use lib/std/log to ensure the logging interface includes everything we need. Some initial benefits are:

  • Forces all uses of logging in the repo to use our agreed upon formatting / customizations. This cuts down on code to setup loggers and ensures optimizations are used everywhere.
  • Ensures logrus dep conflicts don't happen between main module and lib modules since the only direct import of logrus would be in lib/log.
  • Interface ensures tests can easily swap out implementation for mock implementation.

I've added testutils/assert library to help with writing tests in the lib modules, as we don't want to import ginkgo or testify in the lib modules as they might cause dependency issues with the main module.

Related issues/PRs

Todos

  • Tests
  • Documentation
  • Release note

Release Note

TBD

Reminder for the reviewer

Make sure that this PR has the correct labels and milestone set.

Every PR needs one docs-* label.

  • docs-pr-required: This change requires a change to the documentation that has not been completed yet.
  • docs-completed: This change has all necessary documentation completed.
  • docs-not-required: This change has no user-facing impact and requires no docs.

Every PR needs one release-note-* label.

  • release-note-required: This PR has user-facing changes. Most PRs should have this label.
  • release-note-not-required: This PR has no user-facing changes.

Other optional labels:

  • cherry-pick-candidate: This PR should be cherry-picked to an earlier release. For bug fixes only.
  • needs-operator-pr: This PR is related to install and requires a corresponding change to the operator.

@marvin-tigera marvin-tigera added this to the Calico v3.30.0 milestone Feb 14, 2025
@marvin-tigera marvin-tigera added release-note-required Change has user-facing impact (no matter how small) docs-pr-required Change is not yet documented labels Feb 14, 2025
@Brian-McM Brian-McM force-pushed the bm-add-logging-interface branch 2 times, most recently from dd08d87 to d4b50d4 Compare March 20, 2025 15:57
@Brian-McM Brian-McM force-pushed the bm-add-logging-interface branch 4 times, most recently from c14572e to 3757438 Compare March 23, 2025 21:25
@Brian-McM Brian-McM force-pushed the bm-add-logging-interface branch 14 times, most recently from 9fd1d92 to 84a901a Compare May 16, 2025 15:41
@Brian-McM Brian-McM added docs-not-required Docs not required for this change release-note-not-required Change has no user-facing impact and removed release-note-required Change has user-facing impact (no matter how small) docs-pr-required Change is not yet documented labels May 16, 2025
@Brian-McM Brian-McM force-pushed the bm-add-logging-interface branch from 8a3d58d to fd9ff7b Compare May 16, 2025 16:43
@Brian-McM Brian-McM force-pushed the bm-add-logging-interface branch 11 times, most recently from fd0b803 to 0aaf83a Compare May 22, 2025 23:03
Brian-McM added 2 commits May 23, 2025 09:35
    This commit adds custom logging interface to wrap our logger implementation (currently logrus) in the lib/std folder and move all logutilities into the lib/log folder. This replaces all references to logrus and libcalico/logutils in the project to use lib/std/log to ensure the logging interface includes everything we need. Some initial benefits are:
    -- Forces all uses of logging in the repo to use our agreed upon formatting / customizations. This cuts down on code to setup loggers and ensures optimizations are used everywhere.
    -- Ensures logrus dep conflicts don't happen between main module and lib modules since the only direct import of logrus would be in lib/log.
    -- Interface ensures tests can easily swap out implementation for mock implementation.

    I've added testutils/assert library to help with writing tests in the lib modules, as we don't want to import ginkgo or testify in the lib modules as they might cause dependency issues with the main module.
@Brian-McM Brian-McM force-pushed the bm-add-logging-interface branch from 0aaf83a to 32d7786 Compare May 23, 2025 16:36
}
}

// FormatForSyslog formats logs in a way tailored for syslogrus. It avoids logging information that is
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

syslogrus 😁

@github-actions
Copy link

This PR is stale because it has been open for 60 days with no activity.

@github-actions github-actions bot added the stale Issues without recent activity label Nov 15, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs-not-required Docs not required for this change release-note-not-required Change has no user-facing impact stale Issues without recent activity

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants