[#BloombergLP-ball] = xref:BloombergLP.adoc[BloombergLP]::ball :relfileprefix: ../ :mrdocs: Package namespace for logging components. == Types [cols="1,4"] |=== | Name| Description | xref:BloombergLP/ball/Administration.adoc[`Administration`] | This `struct` provides a namespace for logging administration utilities. | xref:BloombergLP/ball/AsyncFileObserver.adoc[`AsyncFileObserver`] | Asynchronous observer that publishes log records to `stdout` and a file. | xref:BloombergLP/ball/AsyncFileObserver_Record.adoc[`AsyncFileObserver_Record`] | PRIVATE STRUCT. For use by the `ball::AsyncFileObserver` implementation only. This `struct` holds a log record and its associated context. | xref:BloombergLP/ball/Attribute.adoc[`Attribute`] | An `Attribute` object contains an attribute name which is not managed and an attribute value which is managed. | xref:BloombergLP/ball/AttributeCollectorRegistry.adoc[`AttributeCollectorRegistry`] | This component maintains a registry of named functors ("collectors") that are used to transform opaque user data into a set of `ball::Attribute` objects. | xref:BloombergLP/ball/AttributeContainer.adoc[`AttributeContainer`] | This class defines a protocol for a container of attribute values. | xref:BloombergLP/ball/AttributeContainerList.adoc[`AttributeContainerList`] | This class provides an in‐core value‐semantic list of `AttributeContainer` object addresses. Attribute container addresses are added to this list using `pushFront()`, which returns an iterator located at the new element. A `AttributeContainerList::iterator` object remains valid until the element referred to by the iterator is removed. Attribute container addresses can be removed using either `remove()`, `removeAll()`, or `removeAllAndRelease()`. This list object attempts to minimize the number of memory allocations it requires by placing the memory for elements that have been released in a free memory store, and re‐using the memory when new elements are added. The `removeAll()` removes all the elements from the list, but does not release any allocated memory (placing it in the free store). The `removeAllAndRelease()` operation removes all elements and releases all allocated memory. Note that maintaining a free store is important for this component because the expectation is that elements will be both added and removed frequently. | xref:BloombergLP/ball/AttributeContainerListIterator.adoc[`AttributeContainerListIterator`] | This class provides an STL‐style iterator over a sequence of `AttributeContainer` object addresses. | xref:BloombergLP/ball/AttributeContainerList_Node.adoc[`AttributeContainerList_Node`] | This is an implementation type of `AttributeContainerList` and should not be used by clients of this package. | xref:BloombergLP/ball/AttributeContext.adoc[`AttributeContext`] | Mechanism for associating attributes with the current thread and evaluating logging rules. | xref:BloombergLP/ball/AttributeContextProctor.adoc[`AttributeContextProctor`] | Proctor that destroys the current thread's attribute context on destruction. | xref:BloombergLP/ball/AttributeContext_RuleEvaluationCache.adoc[`AttributeContext_RuleEvaluationCache`] | Implementation type that evaluates and caches whether logging rules are active. | xref:BloombergLP/ball/BroadcastObserver.adoc[`BroadcastObserver`] | This class provides a broadcasting implementation of the `Observer` protocol. | xref:BloombergLP/ball/Category.adoc[`Category`] | This class provides a container for a category name and threshold levels. | xref:BloombergLP/ball/CategoryCallbacks.adoc[`CategoryCallbacks`] | This struct provides a namespace for default threshold level related callback function types. | xref:BloombergLP/ball/CategoryHolder.adoc[`CategoryHolder`] | This class holds a category, a threshold level, and a next‐holder pointer. | xref:BloombergLP/ball/CategoryManager.adoc[`CategoryManager`] | This class manages a registry of categories. | xref:BloombergLP/ball/CategoryManagerImpUtil.adoc[`CategoryManagerImpUtil`] | This class provides a suite of free functions used to help implement a manager of categories and category holders. | xref:BloombergLP/ball/CategoryManagerIter.adoc[`CategoryManagerIter`] | Iterator providing read‐only access to category manager categories. | xref:BloombergLP/ball/CategoryManagerManip.adoc[`CategoryManagerManip`] | Iterator providing modifiable access to category manager categories. | xref:BloombergLP/ball/CategoryManager_RadixTree.adoc[`CategoryManager_RadixTree`] | Space‐efficient associative container mapping string keys to `t_VALUE`. | xref:BloombergLP/ball/CategoryManager_RadixTree_ChildNodeGuard.adoc[`CategoryManager_RadixTree_ChildNodeGuard`] | RAII guard that removes a child node on exception during value emplacement. | xref:BloombergLP/ball/CategoryManager_RadixTree_Node.adoc[`CategoryManager_RadixTree_Node`] | This class template represents a node in the radix tree. | xref:BloombergLP/ball/Context.adoc[`Context`] | This class provides a container for the context of a transmitted log record. | xref:BloombergLP/ball/CountingAllocator.adoc[`CountingAllocator`] | This class maintains a count of the total number of allocated bytes. | xref:BloombergLP/ball/CstdioObserver.adoc[`CstdioObserver`] | This class provides a concrete implementation of the `Observer` protocol. | xref:BloombergLP/ball/DefaultAttributeContainer.adoc[`DefaultAttributeContainer`] | A `DefaultAttributeContainer` object contains a collection of (unique) attributes values. | xref:BloombergLP/ball/FileObserver.adoc[`FileObserver`] | Observer that publishes log records to `stdout` and optionally a file. | xref:BloombergLP/ball/FileObserver2.adoc[`FileObserver2`] | Observer that publishes log records to a user‐specified file. | xref:BloombergLP/ball/FilteringObserver.adoc[`FilteringObserver`] | This class provides a concrete `Observer` that filters log records. | xref:BloombergLP/ball/FixedSizeRecordBuffer.adoc[`FixedSizeRecordBuffer`] | Concrete, thread‐safe fixed‐size buffer of record handles. | xref:BloombergLP/ball/HierarchicalCategorySetting.adoc[`HierarchicalCategorySetting`] | This class provides a container for a name prefix and associated thresholds. | xref:BloombergLP/ball/Log.adoc[`Log`] | Namespace for utility functions that simplify logger‐manager usage. | xref:BloombergLP/ball/LogFileCleanerUtil.adoc[`LogFileCleanerUtil`] | This utility class provides functions for converting log file patterns and for cleaning up log files based on a configuration. | xref:BloombergLP/ball/Log_Formatter.adoc[`Log_Formatter`] | Aggregate of objects used by the `printf`‐style logging macros. | xref:BloombergLP/ball/Log_Stream.adoc[`Log_Stream`] | Aggregate of objects used by the C++ stream‐based logging macros. | xref:BloombergLP/ball/Logger.adoc[`Logger`] | This class provides log record management services. | xref:BloombergLP/ball/LoggerCategoryUtil.adoc[`LoggerCategoryUtil`] | This struct provides a suite of utility functions that facilitate the management of the categories in `LoggerManager`. | xref:BloombergLP/ball/LoggerFunctorPayloads.adoc[`LoggerFunctorPayloads`] | This `struct` provides a namespace for logger manager functor payloads. | xref:BloombergLP/ball/LoggerManager.adoc[`LoggerManager`] | This class is usually a singleton factory for `Logger` objects. | xref:BloombergLP/ball/LoggerManagerCategoryIter.adoc[`LoggerManagerCategoryIter`] | Iterator providing read‐only access to logger manager categories. | xref:BloombergLP/ball/LoggerManagerCategoryManip.adoc[`LoggerManagerCategoryManip`] | Iterator providing modifiable access to logger manager categories. | xref:BloombergLP/ball/LoggerManagerConfiguration.adoc[`LoggerManagerConfiguration`] | This class provides constrained configuration parameters for a logger manager. | xref:BloombergLP/ball/LoggerManagerDefaults.adoc[`LoggerManagerDefaults`] | This class provides constrained configuration parameters for a logger manager. | xref:BloombergLP/ball/LoggerManagerScopedGuard.adoc[`LoggerManagerScopedGuard`] | This class implements a scoped guard that, on construction, creates the logger manager singleton, and, on destruction, destroys the singleton. | xref:BloombergLP/ball/ManagedAttribute.adoc[`ManagedAttribute`] | A `ball::ManagedAttribute` object contains a `ball::Attribute` object and provides storage for the attribute's name. | xref:BloombergLP/ball/ManagedAttributeSet.adoc[`ManagedAttributeSet`] | This class implements a value‐semantic collection of unique attributes. | xref:BloombergLP/ball/MultiplexObserver.adoc[`MultiplexObserver`] | This class provides a multiplexing implementation of the `Observer` protocol. | xref:BloombergLP/ball/Observer.adoc[`Observer`] | This class provides a protocol for receiving and processing log record output. | xref:BloombergLP/ball/ObserverAdapter.adoc[`ObserverAdapter`] | This class provides a helper for implementing the `Observer` protocol. | xref:BloombergLP/ball/ObserverFormatterImp.adoc[`ObserverFormatterImp`] | Provide shared formatting support for scheme‐based log observers. | xref:BloombergLP/ball/PatternUtil.adoc[`PatternUtil`] | This utility class provides functions relating to pattern matching for strings. | xref:BloombergLP/ball/Record.adoc[`Record`] | Forward declaration of the log record type published by observers. | xref:BloombergLP/ball/RecordAttributes.adoc[`RecordAttributes`] | This class provides a container for a fixed set of attributes appropriate for logging. | xref:BloombergLP/ball/RecordBuffer.adoc[`RecordBuffer`] | Provide a protocol (or pure interface) for managing record handles (specifically instances of `bsl::shared_ptr<Record>`). | xref:BloombergLP/ball/RecordFormatterFunctor.adoc[`RecordFormatterFunctor`] | This struct provides a namespace for a typedef of the functor used for formatting log records to a stream. | xref:BloombergLP/ball/RecordFormatterOptions.adoc[`RecordFormatterOptions`] | This class provides a value‐semantic type for representing options used to configure log record formatters. | xref:BloombergLP/ball/RecordFormatterRegistryUtil.adoc[`RecordFormatterRegistryUtil`] | This utility provides a namespace for functions to create log record formatters based on URI‐like scheme identifiers. | xref:BloombergLP/ball/RecordFormatterTimezone.adoc[`RecordFormatterTimezone`] | This struct provides a namespace for enumerating timezone values for timestamps in record formatters. | xref:BloombergLP/ball/RecordJsonFormatter.adoc[`RecordJsonFormatter`] | This class provides a function object that formats a log record as JSON text elements and renders them to an output stream. | xref:BloombergLP/ball/RecordJsonFormatter_FieldFormatter.adoc[`RecordJsonFormatter_FieldFormatter`] | Forward declaration for a field formatter used by `RecordJsonFormatter`. | xref:BloombergLP/ball/RecordStringFormatter.adoc[`RecordStringFormatter`] | This class provides a value‐semantic log record formatter that holds a `printf`‐style format specification and a timestamp offset. | xref:BloombergLP/ball/Rule.adoc[`Rule`] | This class defines a value‐semantic object that holds a pattern, four threshold levels, and an attribute set. | xref:BloombergLP/ball/RuleSet.adoc[`RuleSet`] | This class manages a set of unique rule values. | xref:BloombergLP/ball/ScopedAttribute.adoc[`ScopedAttribute`] | This class provides a scoped guard that sets a single BALL attribute in the current thread. | xref:BloombergLP/ball/ScopedAttribute_Container.adoc[`ScopedAttribute_Container`] | This component‐private class is a concrete implementation of the `AttributeContainer` protocol for a single attribute. | xref:BloombergLP/ball/ScopedAttributes.adoc[`ScopedAttributes`] | This class provides a scoped guard that installs an `AttributeContainer` in the current attribute context. | xref:BloombergLP/ball/Severity.adoc[`Severity`] | This struct provides a namespace for enumerating severity levels. | xref:BloombergLP/ball/SeverityUtil.adoc[`SeverityUtil`] | This `struct` provides a namespace for non‐primitive procedures on the `Severity::Level` enumeration. | xref:BloombergLP/ball/StreamObserver.adoc[`StreamObserver`] | This class provides a concrete implementation of the `Observer` protocol. | xref:BloombergLP/ball/TestObserver.adoc[`TestObserver`] | This class provides an instrumented implementation of the `Observer` protocol suitable for testing. | xref:BloombergLP/ball/ThresholdAggregate.adoc[`ThresholdAggregate`] | This class implements an aggregate of the four logging threshold levels. | xref:BloombergLP/ball/ThresholdAggregateUtil.adoc[`ThresholdAggregateUtil`] | This class provides helper methods for working with `ball::ThresholdAggregate` objects. | xref:BloombergLP/ball/ThresholdDefaults.adoc[`ThresholdDefaults`] | This struct provides a namespace for default threshold level related constants. | xref:BloombergLP/ball/Transmission.adoc[`Transmission`] | This struct provides a namespace for enumerating the causes of the transmission of a log record. | xref:BloombergLP/ball/UserFieldType.adoc[`UserFieldType`] | This `struct` provides a namespace for enumerating month‐of‐year values. See `Enum` in the TYPES sub‐section for details. | xref:BloombergLP/ball/UserFieldValue.adoc[`UserFieldValue`] | This class implements a value‐semantic type for representing the value of a user field in a log record. | xref:BloombergLP/ball/UserFields.adoc[`UserFields`] | This class implements a value‐semantic type for representing a sequence of (randomly accessible) user field values. |=== == Type Aliases [cols="1,4"] |=== | Name| Description | xref:BloombergLP/ball/Predicate.adoc[`Predicate`] | DEPRECATED: Use `ball::ManagedAttribute` instead. | xref:BloombergLP/ball/PredicateSet.adoc[`PredicateSet`] | DEPRECATED: Use `ball::ManagedAttributeSet` instead. |=== == Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/ball/ball_log_getCategoryHolder.adoc[`ball_log_getCategoryHolder`] | Return the address of the specified `categoryHolder`. | xref:BloombergLP/ball/swap-0b.adoc[`swap`] | `swap` overloads | xref:BloombergLP/ball/operator_lshift-003.adoc[`operator<<`] | Stream insertion operators | xref:BloombergLP/ball/operator_eq-06.adoc[`operator==`] | Equality operators | xref:BloombergLP/ball/operator_not_eq-03b.adoc[`operator!=`] | Inequality operators |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#