diff --git a/config/nrfconnect/chip-module/Kconfig b/config/nrfconnect/chip-module/Kconfig index d8247813838e68..4b477d357287d1 100644 --- a/config/nrfconnect/chip-module/Kconfig +++ b/config/nrfconnect/chip-module/Kconfig @@ -169,3 +169,11 @@ config CHIP_FACTORY_RESET_ERASE_NVS default y if CHIP_FACTORY_DATA || CHIP_FACTORY_DATA_CUSTOM_BACKEND endif + +config CHIP_LOG_SIZE_OPTIMIZATION + bool "Disable some detailed logs to decrease flash usage" + help + Disables some log levels for the specific log modules + providing detailed information that are not used in most cases. + You can find full configuration enabled by this option + in the platform/nrfconnect/CHIPPlatformConfig.h file. diff --git a/config/nrfconnect/chip-module/Kconfig.defaults b/config/nrfconnect/chip-module/Kconfig.defaults index f24fc4608b4122..9232a4600d69ef 100644 --- a/config/nrfconnect/chip-module/Kconfig.defaults +++ b/config/nrfconnect/chip-module/Kconfig.defaults @@ -38,6 +38,10 @@ config LOG_DEFAULT_LEVEL int default 2 +config CHIP_LOG_SIZE_OPTIMIZATION + bool + default y + endif config PRINTK_SYNC diff --git a/examples/all-clusters-app/nrfconnect/main/ZclDoorLockCallbacks.cpp b/examples/all-clusters-app/nrfconnect/main/ZclDoorLockCallbacks.cpp index edaa86e44d5125..0ab2703cb268b2 100644 --- a/examples/all-clusters-app/nrfconnect/main/ZclDoorLockCallbacks.cpp +++ b/examples/all-clusters-app/nrfconnect/main/ZclDoorLockCallbacks.cpp @@ -26,7 +26,7 @@ using namespace ::chip; using namespace ::chip::app::Clusters; using namespace ::chip::app::Clusters::DoorLock; -LOG_MODULE_DECLARE(app, CONFIG_MATTER_LOG_LEVEL); +LOG_MODULE_DECLARE(app, CONFIG_CHIP_APP_LOG_LEVEL); // Provided some empty callbacks and replaced feature map // to simulate DoorLock endpoint for All-Clusters-App example diff --git a/examples/chef/nrfconnect/main.cpp b/examples/chef/nrfconnect/main.cpp index 8c3061945838d7..17e207ead026cc 100644 --- a/examples/chef/nrfconnect/main.cpp +++ b/examples/chef/nrfconnect/main.cpp @@ -43,7 +43,7 @@ #include "Rpc.h" #endif -LOG_MODULE_REGISTER(app, CONFIG_MATTER_LOG_LEVEL); +LOG_MODULE_REGISTER(app, CONFIG_CHIP_APP_LOG_LEVEL); using namespace chip; using namespace chip::Shell; diff --git a/examples/lock-app/nrfconnect/main/AppTask.cpp b/examples/lock-app/nrfconnect/main/AppTask.cpp index f767e5d52c6615..77d689971568c4 100644 --- a/examples/lock-app/nrfconnect/main/AppTask.cpp +++ b/examples/lock-app/nrfconnect/main/AppTask.cpp @@ -51,7 +51,7 @@ #include #include -LOG_MODULE_DECLARE(app, CONFIG_MATTER_LOG_LEVEL); +LOG_MODULE_DECLARE(app, CONFIG_CHIP_APP_LOG_LEVEL); using namespace ::chip; using namespace ::chip::app; diff --git a/examples/lock-app/nrfconnect/main/ZclCallbacks.cpp b/examples/lock-app/nrfconnect/main/ZclCallbacks.cpp index 24b6b7709fd9b8..48ab16bb839b7d 100644 --- a/examples/lock-app/nrfconnect/main/ZclCallbacks.cpp +++ b/examples/lock-app/nrfconnect/main/ZclCallbacks.cpp @@ -29,7 +29,7 @@ using namespace ::chip; using namespace ::chip::app::Clusters; using namespace ::chip::app::Clusters::DoorLock; -LOG_MODULE_DECLARE(app, CONFIG_MATTER_LOG_LEVEL); +LOG_MODULE_DECLARE(app, CONFIG_CHIP_APP_LOG_LEVEL); void MatterPostAttributeChangeCallback(const chip::app::ConcreteAttributePath & attributePath, uint8_t type, uint16_t size, uint8_t * value) diff --git a/examples/lock-app/nrfconnect/main/main.cpp b/examples/lock-app/nrfconnect/main/main.cpp index 0c3b58e3d4f196..93a0062a0ef219 100644 --- a/examples/lock-app/nrfconnect/main/main.cpp +++ b/examples/lock-app/nrfconnect/main/main.cpp @@ -21,7 +21,7 @@ #include -LOG_MODULE_REGISTER(app, CONFIG_MATTER_LOG_LEVEL); +LOG_MODULE_REGISTER(app, CONFIG_CHIP_APP_LOG_LEVEL); using namespace ::chip; diff --git a/examples/pigweed-app/nrfconnect/main/main.cpp b/examples/pigweed-app/nrfconnect/main/main.cpp index 78c6212929e8c7..9abede4a6f0314 100644 --- a/examples/pigweed-app/nrfconnect/main/main.cpp +++ b/examples/pigweed-app/nrfconnect/main/main.cpp @@ -28,7 +28,7 @@ #include #include -LOG_MODULE_REGISTER(app, CONFIG_MATTER_LOG_LEVEL); +LOG_MODULE_REGISTER(app, CONFIG_CHIP_APP_LOG_LEVEL); namespace { LEDWidget sStatusLED; diff --git a/examples/platform/nrfconnect/Rpc.cpp b/examples/platform/nrfconnect/Rpc.cpp index c9961063e0407f..5b76dc3f7e7d76 100644 --- a/examples/platform/nrfconnect/Rpc.cpp +++ b/examples/platform/nrfconnect/Rpc.cpp @@ -26,7 +26,7 @@ #include -LOG_MODULE_DECLARE(app, CONFIG_MATTER_LOG_LEVEL); +LOG_MODULE_DECLARE(app, CONFIG_CHIP_APP_LOG_LEVEL); #if defined(PW_RPC_ATTRIBUTE_SERVICE) && PW_RPC_ATTRIBUTE_SERVICE #include "pigweed/rpc_services/Attributes.h" diff --git a/examples/platform/nrfconnect/util/PWMDevice.cpp b/examples/platform/nrfconnect/util/PWMDevice.cpp index b51d33c8e0ac7d..2d17d31e4e703e 100644 --- a/examples/platform/nrfconnect/util/PWMDevice.cpp +++ b/examples/platform/nrfconnect/util/PWMDevice.cpp @@ -26,7 +26,7 @@ #include #include -LOG_MODULE_DECLARE(app, CONFIG_MATTER_LOG_LEVEL); +LOG_MODULE_DECLARE(app, CONFIG_CHIP_APP_LOG_LEVEL); int PWMDevice::Init(const pwm_dt_spec * aPWMDevice, uint8_t aMinLevel, uint8_t aMaxLevel, uint8_t aDefaultLevel) { diff --git a/src/lib/support/logging/CHIPLogging.h b/src/lib/support/logging/CHIPLogging.h index 28bdeb59c34a9b..1591e6824c3e7d 100644 --- a/src/lib/support/logging/CHIPLogging.h +++ b/src/lib/support/logging/CHIPLogging.h @@ -100,7 +100,7 @@ DLL_EXPORT void SetLogFilter(uint8_t category); * category. * */ -#define ChipLogError(MOD, MSG, ...) ChipInternalLog(MOD, Error, MSG, ##__VA_ARGS__) +#define ChipLogError(MOD, MSG, ...) ChipInternalLog(MOD, ERROR, MSG, ##__VA_ARGS__) #else // CHIP_ERROR_LOGGING #define ChipLogError(MOD, MSG, ...) ((void) 0) #endif // CHIP_ERROR_LOGGING @@ -114,7 +114,7 @@ DLL_EXPORT void SetLogFilter(uint8_t category); * category. * */ -#define ChipLogProgress(MOD, MSG, ...) ChipInternalLog(MOD, Progress, MSG, ##__VA_ARGS__) +#define ChipLogProgress(MOD, MSG, ...) ChipInternalLog(MOD, PROGRESS, MSG, ##__VA_ARGS__) #else // CHIP_PROGRESS_LOGGING #define ChipLogProgress(MOD, MSG, ...) ((void) 0) #endif // CHIP_PROGRESS_LOGGING @@ -128,7 +128,7 @@ DLL_EXPORT void SetLogFilter(uint8_t category); * category. * */ -#define ChipLogDetail(MOD, MSG, ...) ChipInternalLog(MOD, Detail, MSG, ##__VA_ARGS__) +#define ChipLogDetail(MOD, MSG, ...) ChipInternalLog(MOD, DETAIL, MSG, ##__VA_ARGS__) /** * @def ChipLogByteSpan(MOD, DATA) @@ -137,7 +137,7 @@ DLL_EXPORT void SetLogFilter(uint8_t category); * Log a byte span for the specified module in the 'Detail' category. * */ -#define ChipLogByteSpan(MOD, DATA) ChipInternalLogByteSpan(MOD, Detail, DATA) +#define ChipLogByteSpan(MOD, DATA) ChipInternalLogByteSpan(MOD, DETAIL, DATA) #else // CHP_DETAIL_LOGGING #define ChipLogDetail(MOD, MSG, ...) ((void) 0) #define ChipLogByteSpan(MOD, DATA) ((void) 0) @@ -152,7 +152,7 @@ DLL_EXPORT void SetLogFilter(uint8_t category); * category. * */ -#define ChipLogAutomation(MSG, ...) ChipInternalLog(Automation, Automation, MSG, ##__VA_ARGS__) +#define ChipLogAutomation(MSG, ...) ChipInternalLog(Automation, AUTOMATION, MSG, ##__VA_ARGS__) #else // CHIP_AUTOMATION_LOGGING #define ChipLogAutomation(MOD, MSG, ...) ((void) 0) #endif // CHIP_AUTOMATION_LOGGING @@ -346,6 +346,55 @@ DLL_LOCAL inline bool IsCategoryEnabled(uint8_t category) } #endif // CHIP_LOG_FILTERING +/* Internal macros mapping upper case definitions to camel case category constants*/ +#define CHIP_LOG_CATEGORY_DETAIL chip::Logging::kLogCategory_Detail +#define CHIP_LOG_CATEGORY_PROGRESS chip::Logging::kLogCategory_Progress +#define CHIP_LOG_CATEGORY_ERROR chip::Logging::kLogCategory_Error +#define CHIP_LOG_CATEGORY_AUTOMATION chip::Logging::kLogCategory_Automation + +/* + * CHIP Logging Modules Categories filtering implementation. + * + * @brief + * Macro for use to check if given category is enabled for given log module. + * + * Example Usage: + * Let's assume PROGRESS category control for DeviceLayer log module. + * + * Default behavior - category is not modified, so macro returns global category value: + * IsModuleCategoryEnabled(DeviceLayer, PROGRESS) returns CHIP_PROGRESS_LOGGING + * + * Enabling category - category is enabled for module, the category value is ignored and the global value is used: + * #define CHIP_CONFIG_LOG_MODULE_DeviceLayer_PROGRESS 1 + * IsModuleCategoryEnabled(DeviceLayer, PROGRESS) returns CHIP_PROGRESS_LOGGING + * + * Disabling category - category is disabled for module, ignoring global category value: + * #define CHIP_CONFIG_LOG_MODULE_DeviceLayer_PROGRESS 0 + * IsModuleCategoryEnabled(DeviceLayer, PROGRESS) returns 0 + * + * Algorithm flow: + * 1. IsModuleCategoryEnabled(MOD, CAT) uses MOD and CAT to create strings for category module macro and global category macro, + * and invokes _IsModuleCategoryEnabled1(). + * 2. _IsModuleCategoryEnabled1(MOD_CAT, GLOB_CAT) invokes _IsModuleCategoryEnabled2(MOD_CAT, GLOB_CAT) to extract macros + * values. + * 3. _IsModuleCategoryEnabled2(MOD_CAT, GLOB_CAT) uses MOD_CAT to create string for helper macro. + * - If MOD_CAT is 0 the helper macro containing dummy arg is used. + * - If MOD_CAT doesn't exist, empty is used. + * 4. _IsModuleCategoryEnabled3(DUMMY_ARG, GLOB_CAT) invokes _IsModuleCategoryEnabled4() using different number of arguments + * depending on DUMMY_ARG. + * 5. _IsModuleCategoryEnabled4 output: + * - If category for module was not defined or define 1, the DUMMY_ARG was empty, so returning ARG2 is GLOB_CAT. + * - If category for module was defined 0, the DUMMY_ARG had one argument, so returning ARG2 is 0. + * + */ +#define IsModuleCategoryEnabled(MOD, CAT) _IsModuleCategoryEnabled1(CHIP_CONFIG_LOG_MODULE_##MOD##_##CAT, CHIP_##CAT##_LOGGING) +#define _IsModuleCategoryEnabled1(MOD_CAT, GLOB_CAT) _IsModuleCategoryEnabled2(MOD_CAT, GLOB_CAT) +#define _IsModuleCategoryEnabled2(MOD_CAT, GLOB_CAT) \ + _IsModuleCategoryEnabled3(_IsModuleCategoryEnabled3_DummyArg##MOD_CAT, GLOB_CAT) +#define _IsModuleCategoryEnabled3_DummyArg0 dummyArg, +#define _IsModuleCategoryEnabled3(DUMMY_ARG, GLOB_CAT) _IsModuleCategoryEnabled4(DUMMY_ARG 0, GLOB_CAT) +#define _IsModuleCategoryEnabled4(ARG1, ARG2, ...) (ARG2) + DLL_LOCAL void Log(uint8_t module, uint8_t category, const char * msg, ...) ENFORCE_FORMAT(3, 4); DLL_LOCAL void LogByteSpan(uint8_t module, uint8_t category, const ByteSpan & span); DLL_LOCAL void LogV(uint8_t module, uint8_t category, const char * msg, va_list args) ENFORCE_FORMAT(3, 0); @@ -360,28 +409,36 @@ DLL_LOCAL void LogV(uint8_t module, uint8_t category, const char * msg, va_list #define ChipInternalLog(...) ChipPlatformLog(__VA_ARGS__) #define ChipInternalLogByteSpan(...) ChipPlatformLogByteSpan(__VA_ARGS__) #else // CHIP_SYSTEM_CONFIG_PLATFORM_LOG -#define ChipInternalLog(MOD, CAT, MSG, ...) ChipInternalLogImpl(MOD, CAT, MSG, ##__VA_ARGS__) -#define ChipInternalLogByteSpan(MOD, CAT, DATA) ChipInternalLogByteSpanImpl(MOD, CAT, DATA) +#define ChipInternalLog(MOD, CAT, MSG, ...) \ + if (CHIP_CONFIG_LOG_MODULE_##MOD && IsModuleCategoryEnabled(MOD, CAT)) \ + { \ + ChipInternalLogImpl(MOD, CHIP_LOG_CATEGORY_##CAT, MSG, ##__VA_ARGS__); \ + } + +#define ChipInternalLogByteSpan(MOD, CAT, DATA) \ + if (CHIP_CONFIG_LOG_MODULE_##MOD && IsModuleCategoryEnabled(MOD, CAT)) \ + { \ + ChipInternalLogByteSpanImpl(MOD, CHIP_LOG_CATEGORY_##CAT, DATA); \ + } #endif // CHIP_SYSTEM_CONFIG_PLATFORM_LOG #if CHIP_PW_TOKENIZER_LOGGING #define ChipInternalLogImpl(MOD, CAT, MSG, ...) \ do \ { \ - if (chip::Logging::IsCategoryEnabled(chip::Logging::kLogCategory_##CAT)) \ + if (chip::Logging::IsCategoryEnabled(CAT)) \ { \ - PW_TOKENIZE_TO_GLOBAL_HANDLER_WITH_PAYLOAD( \ - (pw_tokenizer_Payload)((chip::Logging::kLogCategory_##CAT << 8) | chip::Logging::kLogModule_##MOD), MSG, \ - __VA_ARGS__); \ + PW_TOKENIZE_TO_GLOBAL_HANDLER_WITH_PAYLOAD((pw_tokenizer_Payload)((CAT << 8) | chip::Logging::kLogModule_##MOD), MSG, \ + __VA_ARGS__); \ } \ } while (0) #else // CHIP_PW_TOKENIZER_LOGGING #define ChipInternalLogImpl(MOD, CAT, MSG, ...) \ do \ { \ - if (chip::Logging::IsCategoryEnabled(chip::Logging::kLogCategory_##CAT)) \ + if (chip::Logging::IsCategoryEnabled(CAT)) \ { \ - chip::Logging::Log(chip::Logging::kLogModule_##MOD, chip::Logging::kLogCategory_##CAT, MSG, ##__VA_ARGS__); \ + chip::Logging::Log(chip::Logging::kLogModule_##MOD, CAT, MSG, ##__VA_ARGS__); \ } \ } while (0) #endif // CHIP_PW_TOKENIZER_LOGGING @@ -389,9 +446,9 @@ DLL_LOCAL void LogV(uint8_t module, uint8_t category, const char * msg, va_list #define ChipInternalLogByteSpanImpl(MOD, CAT, DATA) \ do \ { \ - if (chip::Logging::IsCategoryEnabled(chip::Logging::kLogCategory_##CAT)) \ + if (chip::Logging::IsCategoryEnabled(CAT)) \ { \ - chip::Logging::LogByteSpan(chip::Logging::kLogModule_##MOD, chip::Logging::kLogCategory_##CAT, DATA); \ + chip::Logging::LogByteSpan(chip::Logging::kLogModule_##MOD, CAT, DATA); \ } \ } while (0) diff --git a/src/lib/support/logging/Constants.h b/src/lib/support/logging/Constants.h index c91cf1af5da34a..5abf073bf48a68 100644 --- a/src/lib/support/logging/Constants.h +++ b/src/lib/support/logging/Constants.h @@ -63,6 +63,169 @@ enum LogModule kLogModule_Max }; +/* Log modules enablers. Those definitions can be overwritten with 0 to disable + some log regions. */ + +#ifndef CHIP_CONFIG_LOG_MODULE_NotSpecified +#define CHIP_CONFIG_LOG_MODULE_NotSpecified 1 +#endif + +#ifndef CHIP_CONFIG_LOG_MODULE_Inet +#define CHIP_CONFIG_LOG_MODULE_Inet 1 +#endif + +#ifndef CHIP_CONFIG_LOG_MODULE_Ble +#define CHIP_CONFIG_LOG_MODULE_Ble 1 +#endif + +#ifndef CHIP_CONFIG_LOG_MODULE_MessageLayer +#define CHIP_CONFIG_LOG_MODULE_MessageLayer 1 +#endif + +#ifndef CHIP_CONFIG_LOG_MODULE_SecurityManager +#define CHIP_CONFIG_LOG_MODULE_SecurityManager 1 +#endif + +#ifndef CHIP_CONFIG_LOG_MODULE_ExchangeManager +#define CHIP_CONFIG_LOG_MODULE_ExchangeManager 1 +#endif + +#ifndef CHIP_CONFIG_LOG_MODULE_TLV +#define CHIP_CONFIG_LOG_MODULE_TLV 1 +#endif + +#ifndef CHIP_CONFIG_LOG_MODULE_ASN1 +#define CHIP_CONFIG_LOG_MODULE_ASN1 1 +#endif + +#ifndef CHIP_CONFIG_LOG_MODULE_Crypto +#define CHIP_CONFIG_LOG_MODULE_Crypto 1 +#endif + +#ifndef CHIP_CONFIG_LOG_MODULE_Controller +#define CHIP_CONFIG_LOG_MODULE_Controller 1 +#endif + +#ifndef CHIP_CONFIG_LOG_MODULE_Alarm +#define CHIP_CONFIG_LOG_MODULE_Alarm 1 +#endif + +#ifndef CHIP_CONFIG_LOG_MODULE_SecureChannel +#define CHIP_CONFIG_LOG_MODULE_SecureChannel 1 +#endif + +#ifndef CHIP_CONFIG_LOG_MODULE_BDX +#define CHIP_CONFIG_LOG_MODULE_BDX 1 +#endif + +#ifndef CHIP_CONFIG_LOG_MODULE_DataManagement +#define CHIP_CONFIG_LOG_MODULE_DataManagement 1 +#endif + +#ifndef CHIP_CONFIG_LOG_MODULE_DeviceControl +#define CHIP_CONFIG_LOG_MODULE_DeviceControl 1 +#endif + +#ifndef CHIP_CONFIG_LOG_MODULE_DeviceDescription +#define CHIP_CONFIG_LOG_MODULE_DeviceDescription 1 +#endif + +#ifndef CHIP_CONFIG_LOG_MODULE_Echo +#define CHIP_CONFIG_LOG_MODULE_Echo 1 +#endif + +#ifndef CHIP_CONFIG_LOG_MODULE_FabricProvisioning +#define CHIP_CONFIG_LOG_MODULE_FabricProvisioning 1 +#endif + +#ifndef CHIP_CONFIG_LOG_MODULE_NetworkProvisioning +#define CHIP_CONFIG_LOG_MODULE_NetworkProvisioning 1 +#endif + +#ifndef CHIP_CONFIG_LOG_MODULE_ServiceDiscovery +#define CHIP_CONFIG_LOG_MODULE_ServiceDiscovery 1 +#endif + +#ifndef CHIP_CONFIG_LOG_MODULE_ServiceProvisioning +#define CHIP_CONFIG_LOG_MODULE_ServiceProvisioning 1 +#endif + +#ifndef CHIP_CONFIG_LOG_MODULE_SoftwareUpdate +#define CHIP_CONFIG_LOG_MODULE_SoftwareUpdate 1 +#endif + +#ifndef CHIP_CONFIG_LOG_MODULE_FailSafe +#define CHIP_CONFIG_LOG_MODULE_FailSafe 1 +#endif + +#ifndef CHIP_CONFIG_LOG_MODULE_TimeService +#define CHIP_CONFIG_LOG_MODULE_TimeService 1 +#endif + +#ifndef CHIP_CONFIG_LOG_MODULE_Heartbeat +#define CHIP_CONFIG_LOG_MODULE_Heartbeat 1 +#endif + +#ifndef CHIP_CONFIG_LOG_MODULE_chipSystemLayer +#define CHIP_CONFIG_LOG_MODULE_chipSystemLayer 1 +#endif + +#ifndef CHIP_CONFIG_LOG_MODULE_EventLogging +#define CHIP_CONFIG_LOG_MODULE_EventLogging 1 +#endif + +#ifndef CHIP_CONFIG_LOG_MODULE_Support +#define CHIP_CONFIG_LOG_MODULE_Support 1 +#endif + +#ifndef CHIP_CONFIG_LOG_MODULE_chipTool +#define CHIP_CONFIG_LOG_MODULE_chipTool 1 +#endif + +#ifndef CHIP_CONFIG_LOG_MODULE_Zcl +#define CHIP_CONFIG_LOG_MODULE_Zcl 1 +#endif + +#ifndef CHIP_CONFIG_LOG_MODULE_Shell +#define CHIP_CONFIG_LOG_MODULE_Shell 1 +#endif + +#ifndef CHIP_CONFIG_LOG_MODULE_DeviceLayer +#define CHIP_CONFIG_LOG_MODULE_DeviceLayer 1 +#endif + +#ifndef CHIP_CONFIG_LOG_MODULE_SetupPayload +#define CHIP_CONFIG_LOG_MODULE_SetupPayload 1 +#endif + +#ifndef CHIP_CONFIG_LOG_MODULE_AppServer +#define CHIP_CONFIG_LOG_MODULE_AppServer 1 +#endif + +#ifndef CHIP_CONFIG_LOG_MODULE_Discovery +#define CHIP_CONFIG_LOG_MODULE_Discovery 1 +#endif + +#ifndef CHIP_CONFIG_LOG_MODULE_InteractionModel +#define CHIP_CONFIG_LOG_MODULE_InteractionModel 1 +#endif + +#ifndef CHIP_CONFIG_LOG_MODULE_Test +#define CHIP_CONFIG_LOG_MODULE_Test 1 +#endif + +#ifndef CHIP_CONFIG_LOG_MODULE_OperationalSessionSetup +#define CHIP_CONFIG_LOG_MODULE_OperationalSessionSetup 1 +#endif + +#ifndef CHIP_CONFIG_LOG_MODULE_Automation +#define CHIP_CONFIG_LOG_MODULE_Automation 1 +#endif + +#ifndef CHIP_CONFIG_LOG_MODULE_CASESessionManager +#define CHIP_CONFIG_LOG_MODULE_CASESessionManager 1 +#endif + /** * @enum LogCategory * diff --git a/src/platform/Ameba/AmebaConfig.cpp b/src/platform/Ameba/AmebaConfig.cpp index f5b1ae97faa387..398de03d637084 100644 --- a/src/platform/Ameba/AmebaConfig.cpp +++ b/src/platform/Ameba/AmebaConfig.cpp @@ -104,8 +104,10 @@ CHIP_ERROR AmebaConfig::ReadConfigValue(Key key, bool & val) success = getPref_bool_new(key.Namespace, key.Name, &intVal); if (success != 0) + { ChipLogProgress(DeviceLayer, "getPref_bool_new: %s/%s failed\n", StringOrNullMarker(key.Namespace), StringOrNullMarker(key.Name)); + } val = (intVal != 0); @@ -121,8 +123,10 @@ CHIP_ERROR AmebaConfig::ReadConfigValue(Key key, uint32_t & val) success = getPref_u32_new(key.Namespace, key.Name, &val); if (success != 0) + { ChipLogProgress(DeviceLayer, "getPref_u32_new: %s/%s failed\n", StringOrNullMarker(key.Namespace), StringOrNullMarker(key.Name)); + } if (success == 0) return CHIP_NO_ERROR; @@ -136,8 +140,10 @@ CHIP_ERROR AmebaConfig::ReadConfigValue(Key key, uint64_t & val) success = getPref_u64_new(key.Namespace, key.Name, &val); if (success != 0) + { ChipLogProgress(DeviceLayer, "getPref_u32_new: %s/%s failed\n", StringOrNullMarker(key.Namespace), StringOrNullMarker(key.Name)); + } if (success == 0) return CHIP_NO_ERROR; @@ -151,8 +157,10 @@ CHIP_ERROR AmebaConfig::ReadConfigValueStr(Key key, char * buf, size_t bufSize, success = getPref_str_new(key.Namespace, key.Name, buf, bufSize, &outLen); if (success != 0) + { ChipLogProgress(DeviceLayer, "getPref_str_new: %s/%s failed\n", StringOrNullMarker(key.Namespace), StringOrNullMarker(key.Name)); + } if (success == 0) { @@ -172,8 +180,10 @@ CHIP_ERROR AmebaConfig::ReadConfigValueBin(Key key, uint8_t * buf, size_t bufSiz success = getPref_bin_new(key.Namespace, key.Name, buf, bufSize, &outLen); if (success != 0) + { ChipLogProgress(DeviceLayer, "getPref_bin_new: %s/%s failed\n", StringOrNullMarker(key.Namespace), StringOrNullMarker(key.Name)); + } if (success == 0) { @@ -197,11 +207,15 @@ CHIP_ERROR AmebaConfig::WriteConfigValue(Key key, bool val) value = 0; success = setPref_new(key.Namespace, key.Name, &value, 1); if (!success) + { ChipLogError(DeviceLayer, "setPref: %s/%s = %s failed\n", StringOrNullMarker(key.Namespace), StringOrNullMarker(key.Name), value ? "true" : "false"); + } else + { ChipLogProgress(DeviceLayer, "NVS set: %s/%s = %s", StringOrNullMarker(key.Namespace), StringOrNullMarker(key.Name), val ? "true" : "false"); + } return CHIP_NO_ERROR; } @@ -212,11 +226,15 @@ CHIP_ERROR AmebaConfig::WriteConfigValue(Key key, uint32_t val) success = setPref_new(key.Namespace, key.Name, (uint8_t *) &val, sizeof(uint32_t)); if (!success) + { ChipLogError(DeviceLayer, "setPref: %s/%s = %d(0x%x) failed\n", StringOrNullMarker(key.Namespace), StringOrNullMarker(key.Name), val, val); + } else + { ChipLogProgress(DeviceLayer, "NVS set: %s/%s = %" PRIu32 " (0x%" PRIX32 ")", StringOrNullMarker(key.Namespace), StringOrNullMarker(key.Name), val, val); + } return CHIP_NO_ERROR; } @@ -227,11 +245,15 @@ CHIP_ERROR AmebaConfig::WriteConfigValue(Key key, uint64_t val) success = setPref_new(key.Namespace, key.Name, (uint8_t *) &val, sizeof(uint64_t)); if (!success) + { ChipLogError(DeviceLayer, "setPref: %s/%s = %d(0x%x) failed\n", StringOrNullMarker(key.Namespace), StringOrNullMarker(key.Name), val, val); + } else + { ChipLogProgress(DeviceLayer, "NVS set: %s/%s = %" PRIu64 " (0x%" PRIX64 ")", StringOrNullMarker(key.Namespace), StringOrNullMarker(key.Name), val, val); + } return CHIP_NO_ERROR; } @@ -242,11 +264,15 @@ CHIP_ERROR AmebaConfig::WriteConfigValueStr(Key key, const char * str) success = setPref_new(key.Namespace, key.Name, (uint8_t *) str, strlen(str) + 1); if (!success) + { ChipLogError(DeviceLayer, "setPref: %s/%s = %s failed\n", StringOrNullMarker(key.Namespace), StringOrNullMarker(key.Name), StringOrNullMarker(str)); + } else + { ChipLogProgress(DeviceLayer, "NVS set: %s/%s = \"%s\"", StringOrNullMarker(key.Namespace), StringOrNullMarker(key.Name), StringOrNullMarker(str)); + } return CHIP_NO_ERROR; } @@ -272,10 +298,14 @@ CHIP_ERROR AmebaConfig::WriteConfigValueBin(Key key, const uint8_t * data, size_ success = setPref_new(key.Namespace, key.Name, (uint8_t *) data, dataLen); if (!success) + { ChipLogError(DeviceLayer, "setPref: %s/%s failed\n", StringOrNullMarker(key.Namespace), StringOrNullMarker(key.Name)); + } else + { ChipLogProgress(DeviceLayer, "NVS set: %s/%s = (blob length %" PRId32 ")", StringOrNullMarker(key.Namespace), StringOrNullMarker(key.Name), dataLen); + } return CHIP_NO_ERROR; } @@ -286,10 +316,14 @@ CHIP_ERROR AmebaConfig::ClearConfigValue(Key key) success = deleteKey(key.Namespace, key.Name); if (!success) + { ChipLogProgress(DeviceLayer, "%s : %s/%s failed\n", __FUNCTION__, StringOrNullMarker(key.Namespace), StringOrNullMarker(key.Name)); + } else + { ChipLogProgress(DeviceLayer, "NVS erase: %s/%s", StringOrNullMarker(key.Namespace), StringOrNullMarker(key.Name)); + } return CHIP_NO_ERROR; } diff --git a/src/platform/Darwin/Logging.h b/src/platform/Darwin/Logging.h index 7fcb82a99f663a..30f6c966af8a53 100644 --- a/src/platform/Darwin/Logging.h +++ b/src/platform/Darwin/Logging.h @@ -34,7 +34,7 @@ _Pragma("clang diagnostic ignored \"-Wformat\""); \ os_log_with_type(chip::Logging::Platform::LoggerForModule(chip::Logging::kLogModule_##MOD, #MOD), \ static_cast(chip::Logging::Platform::kOSLogCategory_##CAT), MSG, ##__VA_ARGS__); \ - ChipInternalLogImpl(MOD, CAT, MSG, ##__VA_ARGS__); \ + ChipInternalLogImpl(MOD, CHIP_LOG_CATEGORY_##CAT, MSG, ##__VA_ARGS__); \ _Pragma("clang diagnostic pop"); \ } while (0) @@ -43,7 +43,7 @@ { \ chip::Logging::Platform::LogByteSpan(chip::Logging::kLogModule_##MOD, #MOD, \ static_cast(chip::Logging::Platform::kOSLogCategory_##CAT), DATA); \ - ChipInternalLogByteSpanImpl(MOD, CAT, DATA); \ + ChipInternalLogByteSpanImpl(MOD, CHIP_LOG_CATEGORY_##CAT, DATA); \ } while (0) namespace chip { @@ -59,10 +59,10 @@ namespace Platform { // Names align with chip::Logging::LogCategory enum OSLogCategory { - kOSLogCategory_Error = OS_LOG_TYPE_ERROR, - kOSLogCategory_Progress = OS_LOG_TYPE_DEFAULT, - kOSLogCategory_Detail = OS_LOG_TYPE_INFO, - kOSLogCategory_Automation = OS_LOG_TYPE_DEFAULT, + kOSLogCategory_ERROR = OS_LOG_TYPE_ERROR, + kOSLogCategory_PROGRESS = OS_LOG_TYPE_DEFAULT, + kOSLogCategory_DETAIL = OS_LOG_TYPE_INFO, + kOSLogCategory_AUTOMATION = OS_LOG_TYPE_DEFAULT, }; DLL_LOCAL os_log_t LoggerForModule(chip::Logging::LogModule moduleId, char const * moduleName); diff --git a/src/platform/Zephyr/Logging.cpp b/src/platform/Zephyr/Logging.cpp index f8e2015d415367..4f7322534e331e 100644 --- a/src/platform/Zephyr/Logging.cpp +++ b/src/platform/Zephyr/Logging.cpp @@ -19,7 +19,8 @@ #define LOG_MESSAGE(msg) (msg) #endif -LOG_MODULE_REGISTER(chip, CONFIG_MATTER_LOG_LEVEL); +/* Assume using always debug level and rely on Matter logger layer filtering */ +LOG_MODULE_REGISTER(chip, LOG_LEVEL_DBG); namespace chip { namespace DeviceLayer { diff --git a/src/platform/nrfconnect/CHIPPlatformConfig.h b/src/platform/nrfconnect/CHIPPlatformConfig.h index 32ae780eb672f2..c4b975baf24b4a 100644 --- a/src/platform/nrfconnect/CHIPPlatformConfig.h +++ b/src/platform/nrfconnect/CHIPPlatformConfig.h @@ -69,3 +69,29 @@ #ifndef CHIP_CONFIG_MAX_FABRICS #define CHIP_CONFIG_MAX_FABRICS 5 #endif + +#if CONFIG_CHIP_LOG_SIZE_OPTIMIZATION +// Disable some of the too detailed log modules to save flash +#define CHIP_CONFIG_LOG_MODULE_ExchangeManager_DETAIL 0 +#define CHIP_CONFIG_LOG_MODULE_Crypto_DETAIL 0 +#define CHIP_CONFIG_LOG_MODULE_Crypto_PROGRESS 0 +#define CHIP_CONFIG_LOG_MODULE_BDX_DETAIL 0 +#define CHIP_CONFIG_LOG_MODULE_BDX_PROGRESS 0 +#define CHIP_CONFIG_LOG_MODULE_EventLogging_DETAIL 0 +#define CHIP_CONFIG_LOG_MODULE_EventLogging_PROGRESS 0 +#define CHIP_CONFIG_LOG_MODULE_SetupPayload_DETAIL 0 +#define CHIP_CONFIG_LOG_MODULE_SetupPayload_PROGRESS 0 +#define CHIP_CONFIG_LOG_MODULE_CASESessionManager_DETAIL 0 +#define CHIP_CONFIG_LOG_MODULE_CASESessionManager_PROGRESS 0 +#define CHIP_CONFIG_LOG_MODULE_DataManagement_DETAIL 0 +#define CHIP_CONFIG_LOG_MODULE_FabricProvisioning_DETAIL 0 +#define CHIP_CONFIG_LOG_MODULE_chipSystemLayer_DETAIL 0 +#define CHIP_CONFIG_LOG_MODULE_chipSystemLayer_PROGRESS 0 +#define CHIP_CONFIG_LOG_MODULE_Zcl_DETAIL 0 +#define CHIP_CONFIG_LOG_MODULE_SecureChannel_DETAIL 0 +#define CHIP_CONFIG_LOG_MODULE_Ble_DETAIL 0 +#define CHIP_CONFIG_LOG_MODULE_AppServer_DETAIL 0 +#define CHIP_CONFIG_LOG_MODULE_Support_DETAIL 0 +#define CHIP_CONFIG_LOG_MODULE_Support_PROGRESS 0 +#define CHIP_CONFIG_LOG_MODULE_DeviceLayer_DETAIL 0 +#endif