The PB_DEFAULT_EXCLUDE preprocessor macro is used as a default argument for the constructors of the CPBComponent, CPBContext, and CPBLogger classes. They accept exclusion flags that govern which message types get prefiltered out. E.g. CPBComponent objects can be configured to filter out all informational and warning messages and pass only errors and bugs. PB_DEFAULT_EXCLUDE is just a constant we use so that we can toggle the default exclusion settings to prefilter out VERBOSE and INFO messages in builds where PB_DEBUG_LEVEL is set to 1. This is typically done in full release builds to avoid using up system resources logging strictly informational messages. On the other hand, it is often useful to leave the informational logging enabled so that if problems arise in production environments they can be more quickly resolved. In any case, PB_DEFAULT_EXCLUDE only changes for builds where PB_DEBUG_LEVEL == 1, which requires manual user intervention, and even then it is only set if undefined so as to support a user specified override.