Skip to content

Add configurable logging shim#252

Open
afrind wants to merge 1 commit into
facebook:mainfrom
afrind:export-D106528033
Open

Add configurable logging shim#252
afrind wants to merge 1 commit into
facebook:mainfrom
afrind:export-D106528033

Conversation

@afrind
Copy link
Copy Markdown
Contributor

@afrind afrind commented May 27, 2026

Summary:
Introduces wangle/util/Logging.h, a header-only macro layer that lets downstream builds choose at compile time which backend services log emission:

  • WANGLE_LOGGING_GLOG=1 (default) — glog via <folly/GLog.h>. Behavior identical to today.
  • WANGLE_LOGGING_FOLLY_LOGGING=1 — folly::xlog via <folly/logging/xlog.h>. Routes through folly's category tree.
  • WANGLE_LOGGING_DISABLED=1 — fully stripped. WANGLE_CHECK -> if (!e) abort(), WANGLE_DCHECK -> assert(e), log streams become a noop sink.

The pattern is borrowed from fizz/util/Logging.h. The default is glog because every existing wangle call site uses glog today; opting in to xlog or noop lets OSS users ship without a glog dependency.

All ~370 wangle log/check call sites converted to the WANGLE_* macros via codemod. Two VLOG(10) sites lowered to VLOG(9) so folly-logging mode compiles (folly only defines DBG0..DBG9).

CMake/getdeps integration mirrors the BUCK story: wangle/CMakeLists.txt exposes the modes as option()s and propagates the macro state via target_compile_definitions(wangle_util_logging INTERFACE ...). Per-subdir CMakeLists.txt regenerated by wangle/facebook/generate_cmake.py.

Differential Revision: D106528033

Summary:
Introduces `wangle/util/Logging.h`, a header-only macro layer that lets downstream builds choose at compile time which backend services log emission:

- `WANGLE_LOGGING_GLOG=1` (default) — glog via `<folly/GLog.h>`. Behavior identical to today.
- `WANGLE_LOGGING_FOLLY_LOGGING=1` — folly::xlog via `<folly/logging/xlog.h>`. Routes through folly's category tree.
- `WANGLE_LOGGING_DISABLED=1` — fully stripped. `WANGLE_CHECK` -> `if (!e) abort()`, `WANGLE_DCHECK` -> `assert(e)`, log streams become a noop sink.

The pattern is borrowed from `fizz/util/Logging.h`. The default is glog because every existing wangle call site uses glog today; opting in to xlog or noop lets OSS users ship without a glog dependency.

All ~370 wangle log/check call sites converted to the `WANGLE_*` macros via codemod. Two `VLOG(10)` sites lowered to `VLOG(9)` so folly-logging mode compiles (folly only defines `DBG0..DBG9`).

CMake/getdeps integration mirrors the BUCK story: `wangle/CMakeLists.txt` exposes the modes as `option()`s and propagates the macro state via `target_compile_definitions(wangle_util_logging INTERFACE ...)`. Per-subdir `CMakeLists.txt` regenerated by `wangle/facebook/generate_cmake.py`.

Differential Revision: D106528033
@meta-codesync
Copy link
Copy Markdown

meta-codesync Bot commented May 27, 2026

@afrind has exported this pull request. If you are a Meta employee, you can view the originating Diff in D106528033.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant