Top Method Summary
Options Name Purpose
AddCharacter (JsonObject, character, character) Adds a character value to the given JsonObject
AddContext (JsonObject) Adds the context properties to the given log record
AddObjectValue (JsonObject, character, Object, integer) Adds the given object reference to the JsonObject
AddPropertyValue (JsonObject, Property, Object) Adds the value of an ABL object property to the given JsonObject
Progress.Json.ObjectModel.JsonObject BufferFieldsToJson (handle, character) Returns a JsonObject describing the fields of the given buffer
ClearLogFile () Clears the logfile.
Progress.Json.ObjectModel.JsonConstruct CloneJson (JsonConstruct) Returns a deep copy of the given JSON construct
CopyJsonProperty (JsonObject, JsonObject, character) Copies a property from one JsonObject to another JsonObject keeping the JSON data type
Progress.Json.ObjectModel.JsonObject ErrorToJson (Error) Returns the JsonObject describing the given error object
Progress.Json.ObjectModel.JsonArray LinesToJsonArray (character) Returns a JsonArray with the lines of the given text
Progress.Json.ObjectModel.JsonObject NewRecord (character, character, character) Returns a new log record with the standard properties
Progress.Json.ObjectModel.JsonObject ObjectToJson (Object, integer) Returns a JsonObject with the public instance properties of the given object
OpenFile () Opens the file for output
LOGICAL ShouldWrite (character) Returns if a message for the given custom log entry type should be written
Progress.Json.ObjectModel.JsonObject WidgetToJson (handle) Returns the JsonObject describing the given widget and its child widgets
WriteAllObjectInstances () Dumps all objects in memory to the logfile
WriteBuffer (handle, character) Dumps a buffer's fields to the current logfile.
WriteClassPath () Writes the entries of the .classpath file to the log file
WriteDatabases () Writes the database connections to the log file
WriteError (Error) Writes details about an Error object (exception) to the logfile
WriteError (Error, character) Writes details about an Error object (exception) to the logfile
WriteErrorRecord (Error, character, logical) Writes an error record for the given error object
WriteFormattedMessageInternal (character, character, character[9], integer) Writes a formatted message, the common implementation of all WriteFormattedMessage overloads
WriteIgnoredError (Error) Performs logging for an ignored error (catched but not shown)
WriteJson (JsonConstruct) Writes the JSON Construct to the log file
WriteJson (JsonConstruct, character) Writes the JSON Construct to the log file
WriteJson (JsonConstruct, MessageSubSystem) Writes the JSON Construct to the log file
WriteJsonRecord (JsonConstruct, character) Writes a json record for the given JSON construct
WriteMessage (character) Writes a character message to the logfile and the default logging sub system
WriteMessage (character, character) Writes a message to the logfile
WriteObjectProperties (Object, character, integer) Writes the properties of a class based object to the logfile
WritePropath () Writes the current PROPATH to the log file
WriteRecord (JsonObject) Writes the given log record to the file
WriteSeparator () Writes a line full of ------------- into the current logfile
WriteStackTrace () Writes the current stack trace to the log file
WriteUnfilteredMessage (character, character) Writes a message with the given sub-system label regardless of the custom log entry types
WriteWidgetHierarchy (handle) Writes a widget-tree to the log file, e.g. a MENU structure

Top Constructor Summary
Options Name Purpose
NdjsonLoggingStream (character) Constructor for the NdjsonLoggingStream class
NdjsonLoggingStream (character, logical) Constructor for the NdjsonLoggingStream class

Top Property Summary
Options Name Purpose
INTEGER CHUNK_SIZE
Progress.Json.ObjectModel.JsonObject Context
CHARACTER IRRELEVANT_ERROR_PROPERTIES
INTEGER MAX_OBJECT_DEPTH


Method Detail
Top

AddCharacter (JsonObject, character, character)

Purpose: Adds a character value to the given JsonObject
Notes: SCL-5842. The unknown value is written as null

Parameters:
poJson Progress.Json.ObjectModel.JsonObject
The JsonObject to add the property to
pcName CHARACTER
The name of the property
pcValue CHARACTER
The character value
Top

AddContext (JsonObject)

Purpose: Adds the context properties to the given log record
Notes: The agentId, sessionId and requestId are taken from the
SESSION:CURRENT-REQUEST-INFO CURRENT-REQUEST-INFO (attribute naming as in the
Telemetry Toolkit NDJSON output), followed by the properties
of the Context JsonObject. Errors while retrieving the context
are ignored, so that logging never fails

Parameters:
poRecord Progress.Json.ObjectModel.JsonObject
The JsonObject of the log record
Top

AddObjectValue (JsonObject, character, Object, integer)

Purpose: Adds the given object reference to the JsonObject
Notes: Enum values are written as their name, JSON constructs as a
clone, other objects are reflected recursively until the
maximum nesting depth is reached - beyond that the ToString
value is written

Parameters:
poJson Progress.Json.ObjectModel.JsonObject
The JsonObject to add the value to
pcName CHARACTER
The name of the property
poValue Progress.Lang.Object
The reference to the object
piDepth INTEGER
The current nesting depth
Top

AddPropertyValue (JsonObject, Property, Object)

Purpose: Adds the value of an ABL object property to the given JsonObject
Notes: Primitive values are added with their JSON data type, date and
datetime values in ISO 8601 format

Parameters:
poJson Progress.Json.ObjectModel.JsonObject
The JsonObject to add the property value to
poProperty Progress.Reflect.Property
The Progress.Reflect.Property describing the property
poObject Progress.Lang.Object
The object instance to read the property value from
Top

Progress.Json.ObjectModel.JsonObject BufferFieldsToJson (handle, character)

Purpose: Returns a JsonObject describing the fields of the given buffer
Notes: Extent fields are written as JSON arrays, BLOB and CLOB fields
as an object with the length of the value (like the text output
of the LoggingStream base class)

Parameters:
phBuffer HANDLE
The handle of the buffer
pcExcludeFields CHARACTER
Comma delimited list of field names to exclude
Returns Progress.Json.ObjectModel.JsonObject
The JsonObject with the field values
Top

ClearLogFile ()

Purpose: Clears the logfile.
Notes: Truncates the file, also when the stream has been opened in
append mode

Top

Progress.Json.ObjectModel.JsonConstruct CloneJson (JsonConstruct)

Purpose: Returns a deep copy of the given JSON construct
Notes: The JsonObject / JsonArray classes provide no Clone method, so
the construct is serialized and parsed again. The copy is
required as a JSON construct can only be the child of a single
parent - adding the caller's construct to the log record would
re-parent it

Parameters:
poJson Progress.Json.ObjectModel.JsonConstruct
The JsonConstruct to copy
Returns Progress.Json.ObjectModel.JsonConstruct
The copy of the JsonConstruct
Top

CopyJsonProperty (JsonObject, JsonObject, character)

Purpose: Copies a property from one JsonObject to another JsonObject
keeping the JSON data type
Notes:

Parameters:
poSource Progress.Json.ObjectModel.JsonObject
The source JsonObject
poTarget Progress.Json.ObjectModel.JsonObject
The target JsonObject
pcName CHARACTER
The name of the property
Top

Progress.Json.ObjectModel.JsonObject ErrorToJson (Error)

Purpose: Returns the JsonObject describing the given error object
Notes: The structure is aligned with ErrorHelper:JsonErrorDetails, but
the call stack is written as an array of lines and the messages
are always written as an array

Parameters:
poError Progress.Lang.Error
The reference to the error object
Returns Progress.Json.ObjectModel.JsonObject
The JsonObject describing the error
Top

Progress.Json.ObjectModel.JsonArray LinesToJsonArray (character)

Purpose: Returns a JsonArray with the lines of the given text
Notes: Lines are separated by LF (optionally preceded by CR), empty
lines are skipped

Parameters:
pcText CHARACTER
The multi-line text
Returns Progress.Json.ObjectModel.JsonArray
The JsonArray with one entry per line
Top

Progress.Json.ObjectModel.JsonObject NewRecord (character, character, character)

Purpose: Returns a new log record with the standard properties
Notes: timestamp, logEntryType, loggingLevel, loggingLevelName,
recordType, message and the context properties

Parameters:
pcRecordType CHARACTER
The record type (message, error, json, buffer, objectProperties, stackTrace, propath, objectInstances, databases, classPath, widgetHierarchy)
pcMessageSubSys CHARACTER
The custom log entry type (optionally with logging level) or ? for the default sub system
pcMessage CHARACTER
The message text
Returns Progress.Json.ObjectModel.JsonObject
The JsonObject of the log record
Top

Progress.Json.ObjectModel.JsonObject ObjectToJson (Object, integer)

Purpose: Returns a JsonObject with the public instance properties of the
given object
Notes: Object references are reflected recursively up to a depth of
MAX_OBJECT_DEPTH levels, Enum values and JSON constructs are
written as their value, IEnumerable instances (that do not
implement IDoNotIterateInDebugging) are iterated into an
entries array - like the text output of the LoggingStream base
class

Parameters:
poObject Progress.Lang.Object
The reference to the object
piDepth INTEGER
The current nesting depth
Returns Progress.Json.ObjectModel.JsonObject
The JsonObject with the property values
Top

OpenFile ()

Purpose: Opens the file for output
Notes: Unbuffered output in the UTF-8 codepage, in append mode an
existing file is continued

Top

LOGICAL ShouldWrite (character)

Purpose: Returns if a message for the given custom log entry type should
be written
Notes: Same rule as the FileLoggingStream: Messages for the default
sub system, APPL and USER are always written, messages for the
LogManager custom log entry type as well. All other custom log
entry types have to be active (IsCustomLogEntryTypeActive)

Parameters:
pcMessageSubSys CHARACTER
The custom log entry type (optionally with logging level) or ? for the default sub system
Returns LOGICAL
Logical value indicating if the message should be written
Top

Progress.Json.ObjectModel.JsonObject WidgetToJson (handle)

Purpose: Returns the JsonObject describing the given widget and its
child widgets
Notes: SCL-5842. Based on iterating FIRST-CHILD and NEXT-SIBLING

Parameters:
phWidget HANDLE
The handle of the widget
Returns Progress.Json.ObjectModel.JsonObject
The JsonObject describing the widget
Top

WriteAllObjectInstances ()

Purpose: Dumps all objects in memory to the logfile
Notes: SCL-5842. Writes a single objectInstances record for the Debug
custom log entry type with one entry (typeName and toString) per
object instance. Loops from SESSION:FIRST-OBJECT by NEXT-SIBLING
up to the object that was the SESSION:LAST-OBJECT when the method
was invoked, so that the JSON objects created for the log record
are not dumped

Top

WriteBuffer (handle, character)

Purpose: Dumps a buffer's fields to the current logfile.
Notes: Writes a single buffer record with the field values as a
nested object. When no record is available in that buffer,
the record only describes the buffer

Parameters:
phBuffer HANDLE
The handle to the buffer
pcExcludeFields CHARACTER
Comma delimited list of field names to exclude
Top

WriteClassPath ()

Purpose: Writes the entries of the .classpath file to the log file
Notes: SCL-5842. Writes a single classPath record with the name of the
.classpath file (classPathFile, classPathFileFullPathName) and
one entry (directory or procedureLibrary and fullPathName) per
entry of the .classpath file

Top

WriteDatabases ()

Purpose: Writes the database connections to the log file
Notes: SCL-5842. Writes a single databases record with one entry
(logicalName, physicalName and parameters) per connected database

Top

WriteError (Error)

Purpose: Writes details about an Error object (exception) to the
logfile
Notes: Writes a single error record with the structured error details

Parameters:
poError Progress.Lang.Error
The reference to the error object
Top

WriteError (Error, character)

Purpose: Writes details about an Error object (exception) to the
logfile
Notes: Writes a single error record with the structured error details

Parameters:
poError Progress.Lang.Error
The reference to the error object
pcMessageSubSys CHARACTER
The custom log entry type for the message
Top

WriteErrorRecord (Error, character, logical)

Purpose: Writes an error record for the given error object
Notes: The message property contains the formatted error messages,
the error property the structured error details

Parameters:
poError Progress.Lang.Error
The reference to the error object
pcMessageSubSys CHARACTER
The custom log entry type for the message or ? for the default sub system
plIgnored LOGICAL
Logical value indicating if the error was ignored (WriteIgnoredError)
Top

WriteFormattedMessageInternal (character, character, character[9], integer)

Purpose: Writes a formatted message, the common implementation of all
WriteFormattedMessage overloads
Notes: Writes a message record with the substituted message text in
the message property and additionally the messagePattern and
the messageParameters (array of the up to 9 substitution values)

Parameters:
pcMessagePattern CHARACTER
The message pattern (SUBSTITUTE syntax)
pcMessageSubSys CHARACTER
The custom log entry type for the message or ? for the default sub system
pcMessageParameters CHARACTER
The array of up to 9 message parameters as character values
piParameterCount INTEGER
The number of message parameters passed in the array
Top

WriteIgnoredError (Error)

Purpose: Performs logging for an ignored error (catched but not shown)
Notes: Requires the IgnoredErrors custom log entry type. Writes a
single error record with the ignored property set to true

Parameters:
poError Progress.Lang.Error
The error instance to log
Top

WriteJson (JsonConstruct)

Purpose: Writes the JSON Construct to the log file
Notes: Writes a json record with the JSON construct as the data property

Parameters:
poJson Progress.Json.ObjectModel.JsonConstruct
The JsonConstruct to log
Top

WriteJson (JsonConstruct, character)

Purpose: Writes the JSON Construct to the log file
Notes: Writes a json record with the JSON construct as the data property.
Unlike the LoggingStream base class the custom log entry type is
validated against the CustomLogEntries of this stream, not
against the CustomLogEntries of the LogManager

Parameters:
poJson Progress.Json.ObjectModel.JsonConstruct
The JsonConstruct to log
pcMessageSubSys CHARACTER
The message sub system to write the JSON to
Top

WriteJson (JsonConstruct, MessageSubSystem)

Purpose: Writes the JSON Construct to the log file
Notes: Writes a json record with the JSON construct as the data property

Parameters:
poJson Progress.Json.ObjectModel.JsonConstruct
The JsonConstruct to log
poMessageSubSystem Consultingwerk.Util.MessageSubSystem
The MessageSubSystem of the custom log entry type for the message
Top

WriteJsonRecord (JsonConstruct, character)

Purpose: Writes a json record for the given JSON construct
Notes: The message property contains the compact JSON text, the data
property a clone of the JSON construct (so that the caller's
construct is not re-parented)

Parameters:
poJson Progress.Json.ObjectModel.JsonConstruct
The JsonConstruct to log
pcMessageSubSys CHARACTER
The custom log entry type for the message or ? for the default sub system
Top

WriteMessage (character)

Purpose: Writes a character message to the logfile and the default
logging sub system
Notes:

Parameters:
pcMessage CHARACTER
A character message to write to the log file
Top

WriteMessage (character, character)

Purpose: Writes a message to the logfile
Notes: The second character parameter allows to specify that this message
should only appear in the logfile when a certain custom
log entry type (CustomLogEntries) is activated.

Parameters:
pcMessage CHARACTER
The message text
pcMessageSubSys CHARACTER
The custom log entry type for the message
Top

WriteObjectProperties (Object, character, integer)

Purpose: Writes the properties of a class based object to the logfile
Notes: Writes a single objectProperties record with the property values
as a nested object

Parameters:
poObject Progress.Lang.Object
The reference of the object to write
pcTitle CHARACTER
The title used as a prefix of the logfile output
piIndent INTEGER
Number of characters to indent the output for recursive calls (not used by this implementation)
Top

WritePropath ()

Purpose: Writes the current PROPATH to the log file
Notes: Writes a single propath record with one entry per PROPATH
entry (entry and fullPathName)

Top

WriteRecord (JsonObject)

Purpose: Writes the given log record to the file
Notes: The record is serialized without formatting into a single line.
As the PUT statement does not accept a LONGCHAR variable, the
serialized record is written in chunks of CHUNK_SIZE characters

Parameters:
poRecord Progress.Json.ObjectModel.JsonObject
The JsonObject of the log record
Top

WriteSeparator ()

Purpose: Writes a line full of ------------- into the current logfile
Notes: A separator line has no meaning in a structured log file,
nothing is written

Top

WriteStackTrace ()

Purpose: Writes the current stack trace to the log file
Notes: Writes a single stackTrace record with the callStack as an
array of lines

Top

WriteUnfilteredMessage (character, character)

Purpose: Writes a message with the given sub-system label regardless of
the custom log entry types
Notes: SCL-5876. Writes a message record with the sub-system as the
logEntryType

Parameters:
pcMessage CHARACTER
The message text
pcMessageSubSys CHARACTER
The sub-system label of the message
Top

WriteWidgetHierarchy (handle)

Purpose: Writes a widget-tree to the log file, e.g. a MENU structure
Notes: SCL-5842. Writes a single widgetHierarchy record with the widget
tree as a nested object (handle, type, name, label, children).
An invalid handle is written as null

Parameters:
phParent HANDLE
The handle of the parent widget


Constructor Detail
Top

NdjsonLoggingStream (character)

Purpose: Constructor for the NdjsonLoggingStream class
Notes: An existing file is truncated

Parameters:
pcFileName CHARACTER
The name of the NDJSON logging file
Top

NdjsonLoggingStream (character, logical)

Purpose: Constructor for the NdjsonLoggingStream class
Notes:

Parameters:
pcFileName CHARACTER
The name of the NDJSON logging file
plAppend LOGICAL
Logical value indicating if an existing file is continued (true) or truncated (false)


Property Detail
Top

INTEGER CHUNK_SIZE


Returns INTEGER
Top

Progress.Json.ObjectModel.JsonObject Context


Returns Progress.Json.ObjectModel.JsonObject
Top

CHARACTER IRRELEVANT_ERROR_PROPERTIES


Returns CHARACTER
Top

INTEGER MAX_OBJECT_DEPTH


Returns INTEGER


©2006-2026 Consultingwerk Ltd.         info@consultingwerk.de         http://www.consultingwerk.de       19.09.2026 10:19:43