[#BloombergLP-ball-RecordJsonFormatter] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/ball.adoc[ball]::RecordJsonFormatter :relfileprefix: ../../ :mrdocs: This class provides a function object that formats a log record as JSON text elements and renders them to an output stream. The overloaded `operator()` provided by the class formats log record according to a message format specification supplied either by `setJsonFormat` or `setSimplifiedFormat` manipulator or the default format installed by the constructor) and outputs the result to the stream. While this functor type is designed to match the function signature expected by many concrete `ball::Observer` implementations that publish log records (for example, see `ball::FileObserver2::setLogFileFunctor`) it is advised to use the more flexible scheme‐based format selection provided now by every BDE‐made observer. == Synopsis Declared in `<ball_recordjsonformatter.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class RecordJsonFormatter; ---- == Type Aliases [cols="1,4"] |=== | Name| Description | xref:BloombergLP/ball/RecordJsonFormatter/FieldFormatters.adoc[`FieldFormatters`] | `FieldFormatters` is an alias for a vector of the `RecordJsonFormatter_FieldFormatter` objects, each of which is initialized from the format specification and responsible for rendering one field of a `ball::Record` to the output JSON stream. | xref:BloombergLP/ball/RecordJsonFormatter/allocator_type.adoc[`allocator_type`] | This `typedef` is an alias for the allocator used by this object. |=== == Enums [cols="1,4"] |=== | Name| Description | xref:BloombergLP/ball/RecordJsonFormatter/SpecSyntax.adoc[`SpecSyntax`] | Enumerator to determine the syntax of the specification string. |=== == Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/ball/RecordJsonFormatter/2constructor-04.adoc[`RecordJsonFormatter`] [.small]#[constructor]# | Constructors | xref:BloombergLP/ball/RecordJsonFormatter/2destructor.adoc[`~RecordJsonFormatter`] [.small]#[destructor]# | Destroy this object. | xref:BloombergLP/ball/RecordJsonFormatter/operator_assign-01.adoc[`operator=`] | Assignment operators | xref:BloombergLP/ball/RecordJsonFormatter/allocator.adoc[`allocator`] [.small]#[deprecated]# | DEPRECATED: Use `get_allocator().mechanism()` instead. | xref:BloombergLP/ball/RecordJsonFormatter/format.adoc[`format`] | Return the message format specification of this record JSON formatter. See {`Record Format Specification`}. Note that the syntax of this string depends on `formatSyntax()`. | xref:BloombergLP/ball/RecordJsonFormatter/formatSyntax.adoc[`formatSyntax`] | Return the message format specification syntax of this record JSON formatter. See {`Record Format Specification`}. | xref:BloombergLP/ball/RecordJsonFormatter/get_allocator.adoc[`get_allocator`] | Return the allocator used by this object to supply memory. | xref:BloombergLP/ball/RecordJsonFormatter/operator_call.adoc[`operator()`] | Format the specified `record` according to the current `format` and `recordSeparator` to the specified `stream`. | xref:BloombergLP/ball/RecordJsonFormatter/recordSeparator.adoc[`recordSeparator`] | Return the record separator of this record JSON formatter. | xref:BloombergLP/ball/RecordJsonFormatter/setFormat.adoc[`setFormat`] | DEPRECATED: Use `setJsonFormat` instead. | xref:BloombergLP/ball/RecordJsonFormatter/setJsonFormat.adoc[`setJsonFormat`] | Set the message format specification (see {`Record Format Specification`}) of this record JSON formatter to the specified JSON‐syntax `format`. Return 0 on success, and a non‐zero value otherwise (if `format` is not valid JSON _or_ not a JSON conforming to the expected schema). Note that this is the method used by the `json://` scheme. | xref:BloombergLP/ball/RecordJsonFormatter/setRecordSeparator.adoc[`setRecordSeparator`] | Set the record separator for this record JSON formatter to the specified `recordSeparator`. The `recordSeparator` will be printed by each invocation of `operator()` after the formatted record. The default is a single newline character, "n". | xref:BloombergLP/ball/RecordJsonFormatter/setSimplifiedFormat.adoc[`setSimplifiedFormat`] | Parse the simplified format specification (see {`Simplified Record Format Specification`}) in the specified `format` and configure this formatter accordingly. Return 0 on success, and a non‐zero value otherwise. | xref:BloombergLP/ball/RecordJsonFormatter/setTimezoneDefault.adoc[`setTimezoneDefault`] | Set the time zone default for every "timestamp" output without a timezone specified in the format string to the specified `timezoneDefault`. Note that this method reapplies the current format specification to update all timestamp formatters. | xref:BloombergLP/ball/RecordJsonFormatter/timezoneDefault.adoc[`timezoneDefault`] | Get the time zone default setting. |=== == Static Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/ball/RecordJsonFormatter/loadJsonSchemeFormatter.adoc[`loadJsonSchemeFormatter`] | This class method configures a formatter for the "json" scheme using the specified `format` and `formatOptions` and if successful loads it into the specified `output` and returns zero. In case configuration fails a non‐zero value is returned and `output` is not modified. | xref:BloombergLP/ball/RecordJsonFormatter/loadQjsonSchemeFormatter.adoc[`loadQjsonSchemeFormatter`] | This class method configures a formatter for the "qjson" scheme using the specified `format` and `formatOptions` and if successful loads it into the specified `output` and returns zero. In case configuration fails a non‐zero value is returned and `output` is not modified. |=== == Non-Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/ball/operator_not_eq-0c.adoc[`operator!=`] | Return `true` if the specified `lhs` and `rhs` record formatters do not have the same value, and `false` otherwise. Two record formatters differ in value if their format syntax, format specifications, timezone defaults, or record separators differ. | xref:BloombergLP/ball/operator_eq-0f06.adoc[`operator==`] | Return `true` if the specified `lhs` and `rhs` record formatters have the same value, and `false` otherwise. Two record formatters have the same value if they have the same format syntax, format specification, timezone default, and record separator. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#