)]}'
{
  "commit": "1dd7260d65087915ff9eb488ef59df5de788ae1f",
  "tree": "8447fbad9ee422f0515a2bc9b3675939a91c51ba",
  "parents": [
    "ffda878663d2424f0e2b889a3f63cf715f37b2dc"
  ],
  "author": {
    "name": "Tommi",
    "email": "tommi@webrtc.org",
    "time": "Wed Apr 15 14:03:56 2026"
  },
  "committer": {
    "name": "webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Wed Apr 15 16:11:22 2026"
  },
  "message": "Introduce explicit configuration for logging initialization\n\nIntroduce the LoggingConfig struct and InitializeLogging function to\neventually replace legacy static methods for configuring the logging\nsystem. This centralizes logging parameters and sinks, ensuring a more\nconsistent, less error prone, more efficient (due to not relying on per\nlog message synchronization) initialization sequence.\n\nThe new model requires that configuration is applied only once. If\nInitializeLogging is called after the system has already started—either\nexplicitly or implicitly via a log call—the function returns false and\nthe provided configuration is ignored. This prevents race conditions and\ninconsistent logging states that can occur when modifying global log\nsettings during runtime, but allows for reduces synchronization at\nruntime.\n\nKey modifications:\n- Deprecate LogMessage::LogThreads and LogMessage::ConfigureLogging.\n- Remove LogPrefix and SetLogPrefix methods, centralizing prefix in\n  config.\n- Remove streams_empty_ as it is no longer needed.\n- Include documentation for the new initialization flow.\n- Start transitioning internal logging state management to use the\n  unified configuration object instead of individual static flags.\n\nBug: webrtc:42234107\nChange-Id: I1879e9626b7ede5d2a1ebf238c7f26c4f185e6b1\nReviewed-on: https://webrtc-review.googlesource.com/c/src/+/462063\nReviewed-by: Danil Chapovalov \u003cdanilchap@webrtc.org\u003e\nCommit-Queue: Tomas Gunnarsson \u003ctommi@webrtc.org\u003e\nCr-Commit-Position: refs/heads/main@{#47435}\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f61ea223327cc20e670d0e74453c72e135b1717c",
      "old_mode": 33188,
      "old_path": "DEPS",
      "new_id": "c0efc62d2ab96bbea345e8b3428cb854297b18f8",
      "new_mode": 33188,
      "new_path": "DEPS"
    },
    {
      "type": "modify",
      "old_id": "ee790f3ea7a27f9452f4fb45330cff930096bf3b",
      "old_mode": 33188,
      "old_path": "g3doc/abseil-in-webrtc.md",
      "new_id": "e82444798f5ecd7615b39499f751507f78f93b11",
      "new_mode": 33188,
      "new_path": "g3doc/abseil-in-webrtc.md"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "eab307eecb5e1c5dfe792ba0f9c616bbe6bca54a",
      "new_mode": 33188,
      "new_path": "g3doc/logging/initialization.md"
    },
    {
      "type": "modify",
      "old_id": "9dc10ea6489be0d28177e19a8017c9d8fd59e24d",
      "old_mode": 33188,
      "old_path": "modules/audio_device/audio_device_unittest.cc",
      "new_id": "786ac381fc7ea5a1fa58cccf3d20296132d59335",
      "new_mode": 33188,
      "new_path": "modules/audio_device/audio_device_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "e6514e519ddc838776778b91a908c8ebc52ec27c",
      "old_mode": 33188,
      "old_path": "modules/audio_device/win/core_audio_utility_win_unittest.cc",
      "new_id": "b4061943c0482fa3e702f8ceabb08aead325599e",
      "new_mode": 33188,
      "new_path": "modules/audio_device/win/core_audio_utility_win_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "94a87d570e49d5d13f5977e3ba7a6311e59d7117",
      "old_mode": 33188,
      "old_path": "rtc_base/BUILD.gn",
      "new_id": "066059f312d0cc5937079e5c003d74d79cea8c7b",
      "new_mode": 33188,
      "new_path": "rtc_base/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "01756f3c99a9b1df428ac5ef272997e7ead1d073",
      "old_mode": 33188,
      "old_path": "rtc_base/DEPS",
      "new_id": "c28d27a5f9cc3dd53b99a3840d90a380564da0cb",
      "new_mode": 33188,
      "new_path": "rtc_base/DEPS"
    },
    {
      "type": "modify",
      "old_id": "6437cc4b87132897d0b7eb10ac7b552e219b529d",
      "old_mode": 33188,
      "old_path": "rtc_base/logging.cc",
      "new_id": "d8972724aca6c68417be644ecb97fed3120254e8",
      "new_mode": 33188,
      "new_path": "rtc_base/logging.cc"
    },
    {
      "type": "modify",
      "old_id": "5667aee3fbd1986dc0c8e0c5401c383a1a89582a",
      "old_mode": 33188,
      "old_path": "rtc_base/logging.h",
      "new_id": "60c05c772ef6c70ca0b9438cdb0c10ffb2365da7",
      "new_mode": 33188,
      "new_path": "rtc_base/logging.h"
    },
    {
      "type": "modify",
      "old_id": "ff9a348ea6c65c88be05638b3d53cdac51824f03",
      "old_mode": 33188,
      "old_path": "rtc_base/logging_unittest.cc",
      "new_id": "aea44c13b76256f13f258abb15c4bce70c1489db",
      "new_mode": 33188,
      "new_path": "rtc_base/logging_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "a076fd9549b674caa1e6f5b68d1a622dc5a67284",
      "old_mode": 33188,
      "old_path": "sdk/android/src/jni/pc/logging.cc",
      "new_id": "6c8ff8715702d7ae30bd6323d0eeac69a6bfe02f",
      "new_mode": 33188,
      "new_path": "sdk/android/src/jni/pc/logging.cc"
    },
    {
      "type": "modify",
      "old_id": "b3a6ba3764c98dd137d6820beecf3e7b9ee657dd",
      "old_mode": 33188,
      "old_path": "sdk/objc/api/peerconnection/RTCFileLogger.mm",
      "new_id": "dde3f8d6e5eb3f99627fa33850afd124a8539de0",
      "new_mode": 33188,
      "new_path": "sdk/objc/api/peerconnection/RTCFileLogger.mm"
    },
    {
      "type": "modify",
      "old_id": "b824321f5ffa6067700728c38c1fcbb288de7e4e",
      "old_mode": 33188,
      "old_path": "test/test_main_lib.cc",
      "new_id": "d577e38f9797451b70eb43bcaba22bedcc09c131",
      "new_mode": 33188,
      "new_path": "test/test_main_lib.cc"
    }
  ]
}
