Log the specified record after setting its category attribute to the specified category and its severity attribute to the specified severity. (See the component-level documentation of ball_record for more information on the fields that are logged.) Store the record in the buffer held by the logger if severity is at least as severe as the current "Record" threshold level of category. Pass the record directly to the registered observer if severity is at least as severe as the current "Pass" threshold level of category. Publish the entire contents of the buffer of the logger if severity is at least as severe as the current "Trigger" threshold level of category. Publish the entire contents of all buffers of all loggers if severity is at least as severe as the current "Trigger-All" threshold level of category (i.e., via the callback supplied at construction of the logger manager singleton). Finally, dispose of record. This method has no effect (other than disposing of record) if severity is less severe than each of the threshold levels of category. The behavior is undefined unless severity is in the range [1 .. 255], record was obtained by a call to Log::getRecord, and, if category is not 0, the logger manager singleton is initialized. Note that record will be invalid after this method returns.