Namespace: OpenEdge.Logging
Class
ConfigFileLoggerBuilder
Parent classes:
Inherits: OpenEdge.Logging.LoggerBuilder

Copyright (c) 2016-2019 by Progress Software Corporation. All rights reserved.
File:ConfigFileLoggerBuilder
Author(s):pjudge
Created:Mon Dec 05 09:48:11 EST 2016
Notes:* Assumes the config is stored in a JSON file
- named logging.config
- matching the schema in @DLC/src/corelib/OpenEdge/Logging/logging.config.schema
Any values set in this builder OVERRIDE the config values
https://logging.apache.org/log4j/1.2/manual.html .




Method Summary
Options Name Purpose
OpenEdge.Logging.LoggerBuilder AddFilter (character) /* Adds a filter to the logger being built @param character The filter name to add @return LoggerBuilder This builder object */
Inherited from OpenEdge.Logging.LoggerBuilder
LOGICAL AppendArrayCharacterValue (character, character) /** Appends a character value to an array (convenience) @param character The option name @param character the value */
Inherited from OpenEdge.Core.Util.ConfigBuilder
OpenEdge.Logging.LoggerBuilder Build (character) /* Returns a builder for a logger @param character The logger type @return LoggerBuilder A builder for that logger */
Inherited from OpenEdge.Logging.LoggerBuilder
OpenEdge.Logging.LoggerBuilder Build (character, BuilderRegistry) /* Returns a builder for a logger @param character The logger type @param BuilderRegistry A registry of Filter writers to user @return LoggerBuilder A builder for that logger */
Inherited from OpenEdge.Logging.LoggerBuilder
OpenEdge.Logging.ILogWriter BuildFilterLogger () /* Creates a default logger based that uses the config in this class @return ILogWriter A logger */
Inherited from OpenEdge.Logging.LoggerBuilder
ClearConfig () /* Clears all the current logger configurations */
ClearOptions () /** Clears all options for this builder */
Inherited from OpenEdge.Core.Util.ConfigBuilder
OpenEdge.Logging.LogLevelEnum FindLevel (character) /* Finds the log level for a logger to use, based on the logger type Algorithm is 1) exact match 2) chop off the trailing .-delimited entry, repeating 3) find the logger defined as DEFAULT_LOGGER, folling steps 1 & 2 @param character The logger type to find @return LogLevelEnum returns a log level , if any */
LOGICAL FindLogger (character, buffer) /* Find a temp-table record/config for a logger to use Algorithm is 1) exact match 2) chop off the trailing .-delimited entry, repeating 3) find the logger defined as DEFAULT_LOGGER, following steps 1 & 2 4) return a void logger (just to have a reference) @param character The logger type to find @param buffer A buffer reference to the logger temp-table @return logical TRUE if a logger record was found. If TRUE, the buffer will AVAILABLE; if false, not */
Progress.Lang.Class GetABLType (JsonObject, character) /* Returns a type name from a property we expect to have a type. Basically resolving the typeName / typeProperty values into an P.L.C "definitions": { "typeName": { "type": "string", "description": "An OOABL type name", "pattern": "^[A-Za-z]+[A-Za-z$0-9-&#%.]+[A-Za-z$0-9-&#%]*$" }, "typeProperty": { "type": "object", "properties": { "type": {"$ref": "#/definitions/typeName"}, "hash": { "type": "string", "description": "A hash value to validate that the OOABL type is the expected version." } }, "required": ["type"] }, "builderProperty": { "oneOf": [ {"$ref": "#/definitions/typeProperty"}, {"$ref": "#/definitions/typeName"} ] } }, @param JsonObject The JSON containign the type property @param character The name of the propert @return P.L.Class A resolve ABL type name. May be unknown */
OpenEdge.Logging.ILogWriter GetLogger (character) /** Returns a logger (ILogWriter) @param character The logger name @return ILogWriter An instance of the default logger */
Inherited from OpenEdge.Logging.LoggerBuilder
OpenEdge.Logging.ILogWriter GetLogger (handle) /** Returns a logger (ILogWriter). @param handle The procedure for which to find a logger @return ILogWriter An instance of the default logger */
Inherited from OpenEdge.Logging.LoggerBuilder
OpenEdge.Logging.ILogWriter GetLogger (Class) /** Returns a logger (ILogWriter). @param P.L.Class The typename for which to find a logger @return ILogWriter An instance of the default logger */
Inherited from OpenEdge.Logging.LoggerBuilder
OpenEdge.Logging.ILogWriter GetLoggerInstance () /* Constructs the actual logger instance @return ILogWriter A new or cached logged */
Overrides OpenEdge.Logging.LoggerBuilder:GetLoggerInstance ()
DATETIME-TZ GetOptionDateTimeValue (character) /** Returns an option's datetime value @param character The option name @return datetime-tz the value */
Inherited from OpenEdge.Core.Util.ConfigBuilder
LOGICAL GetOptionLogicalValue (character) /** Returns an option's logical value @param character The option name @return logical the value */
Inherited from OpenEdge.Core.Util.ConfigBuilder
LONGCHAR GetOptionLongcharValue (character) /** Returns an option's longchar value @param character The option name @return longchar the value */
Inherited from OpenEdge.Core.Util.ConfigBuilder
DECIMAL GetOptionNumericValue (character) /** Returns an option's decimal value @param character The option name @return decimal the value */
Inherited from OpenEdge.Core.Util.ConfigBuilder
Object GetOptionObjectValue (character) /** Returns an option's object value @param character The option name @return Object the value */
Inherited from OpenEdge.Core.Util.ConfigBuilder
CHARACTER GetOptionStringArrayValue (character) /** Returns an option's character array value @param character The option name @return character[] the value */
Inherited from OpenEdge.Core.Util.ConfigBuilder
CHARACTER GetOptionStringValue (character) /** Returns an option's character value @param character The option name @return character the value */
Inherited from OpenEdge.Core.Util.ConfigBuilder
LOGICAL HasOption (character) /** Checks whether a config option already exists @param character The option name @return logical True if the named configuration option exists */
Inherited from OpenEdge.Core.Util.ConfigBuilder
LoadConfig (JsonObject) /* Loads logging configuration from JSON @param JsonObject JSON representation of the lgging configuration */
LoadFromFile (character) /* Loads logging config from a file @param character The filename to load. */
OpenEdge.Logging.LoggerBuilder LogAt (LogLevelEnum) /* Sets the log level for this logger. @param LogLevelEnum the level to log at @return LoggerBuilder This builder object */
Inherited from OpenEdge.Logging.LoggerBuilder
LogMessage (character, LogLevelEnum) /* Logs error/messages that are written before a logger instance is successfully built. ONLY for use by the LoggerBuilder (hence protected). This is intentionally a very primitive log writer. Messages are written to the first location found by the algorithm below 1. If a log-manager exists, write there. This will always be the case on a server (PASOE or Classic A/S & WS) 2. The session's temp-dir in a file called loggerbuilder.log Messages are APPENDED to the output file @param character The message to write @param LogLevelEnum The level of the message */
Inherited from OpenEdge.Logging.LoggerBuilder
LOGICAL RemoveOption (character) /** Removes an option @param character The option name */
Inherited from OpenEdge.Core.Util.ConfigBuilder
LOGICAL SetOption (character, character) /** Stores an value as an option @param character The option name @param character the value @return logical True is the option was overwritten */
Inherited from OpenEdge.Core.Util.ConfigBuilder
LOGICAL SetOption (character, character[]) /** Stores an value as an option @param character The option name @param character the value @return logical True is the option was overwritten */
Inherited from OpenEdge.Core.Util.ConfigBuilder
LOGICAL SetOption (character, datetime-tz) /** Stores a datetime-tzvalue as an option @param character The option name @param datetime-tz the value @return logical True is the option was overwritten */
Inherited from OpenEdge.Core.Util.ConfigBuilder
LOGICAL SetOption (character, decimal) /** Stores an numeric value as an option @param character The option name @param Object the value @return logical True is the option was overwritten */
Inherited from OpenEdge.Core.Util.ConfigBuilder
LOGICAL SetOption (character, logical) /** Stores a logical value as an option @param character The option name @param logical the value @return logical True is the option was overwritten */
Inherited from OpenEdge.Core.Util.ConfigBuilder
LOGICAL SetOption (character, Object) /** Stores an object value as an option @param character The option name @param Object the value @return logical True is the option was overwritten */
Inherited from OpenEdge.Core.Util.ConfigBuilder
LOGICAL SetOption (Class, Object) /** Stores an object value as an option @param Progress.Lang>Class The option name (as a type) @param Object the value @return logical True is the option was overwritten */
Inherited from OpenEdge.Core.Util.ConfigBuilder
ValidateFilter (character, character) /* Ensures that a Filter type is the one we were expecting. @param character (mandatory) The ABL Filter name used to process the event @param character (optional) A hash used to verify the Filter's authenticity @throws AppError If a hash is passed and the Filter type's hash does not match */

Constructor Summary
Options Name Purpose
ConfigFileLoggerBuilder () /* Static constructor */
ConfigFileLoggerBuilder (character) /* Constructor @param character The logger type being built */

Property Summary
Options Name Purpose
CHARACTER DefaultLogger
Inherited from OpenEdge.Logging.LoggerBuilder
OpenEdge.Core.Util.BuilderRegistry FilterBuilders
OpenEdge.Core.Util.BuilderRegistry Filters
OpenEdge.Logging.ILogWriter Logger
Inherited from OpenEdge.Logging.LoggerBuilder
CHARACTER LoggerType
Inherited from OpenEdge.Logging.LoggerBuilder
OpenEdge.Core.Util.BuilderRegistry Registry
Inherited from OpenEdge.Logging.LoggerBuilder


Method Detail
Top

PUBLIC OpenEdge.Logging.LoggerBuilder AddFilter (character)

Inherited from OpenEdge.Logging.LoggerBuilder
/* Adds a filter to the logger being built
Parameters:
pcFilterName CHARACTER
Returns OpenEdge.Logging.LoggerBuilder
LoggerBuilder This builder object
Top

PROTECTED LOGICAL AppendArrayCharacterValue (character, character)

Inherited from OpenEdge.Core.Util.ConfigBuilder
Purpose: Appends a character value to an array (convenience)
Parameters:
pcName CHARACTER
pcValue CHARACTER
Returns LOGICAL
Top

PUBLIC OpenEdge.Logging.LoggerBuilder Build (character)

Inherited from OpenEdge.Logging.LoggerBuilder
/* Returns a builder for a logger
Parameters:
pcLoggerType CHARACTER
Returns OpenEdge.Logging.LoggerBuilder
LoggerBuilder A builder for that logger
Top

PUBLIC OpenEdge.Logging.LoggerBuilder Build (character, BuilderRegistry)

Inherited from OpenEdge.Logging.LoggerBuilder
/* Returns a builder for a logger
Parameters:
pcLoggerType CHARACTER
poBuilders OpenEdge.Core.Util.BuilderRegistry
Returns OpenEdge.Logging.LoggerBuilder
LoggerBuilder A builder for that logger
Top

PROTECTED OpenEdge.Logging.ILogWriter BuildFilterLogger ()

Inherited from OpenEdge.Logging.LoggerBuilder
/* Creates a default logger based that uses the config in this class
Returns OpenEdge.Logging.ILogWriter
ILogWriter A logger
Top

PUBLIC ClearConfig ()

/* Clears all the current logger configurations
Top

PROTECTED ClearOptions ()

Inherited from OpenEdge.Core.Util.ConfigBuilder
Purpose: Clears all options for this builder
Top

PRIVATE OpenEdge.Logging.LogLevelEnum FindLevel (character)

/* Finds the log level for a logger to use, based on the logger type
Algorithm is
1) exact match
2) chop off the trailing .-delimited entry, repeating
3) find the logger defined as DEFAULT_LOGGER, folling steps 1 & 2
Parameters:
pcLoggerType CHARACTER
Returns OpenEdge.Logging.LogLevelEnum
LogLevelEnum returns a log level , if any
Top

PRIVATE LOGICAL FindLogger (character, buffer)

/* Find a temp-table record/config for a logger to use
Algorithm is
1) exact match
2) chop off the trailing .-delimited entry, repeating
3) find the logger defined as DEFAULT_LOGGER, following steps 1 & 2
4) return a void logger (just to have a reference)
buffer will AVAILABLE; if false, not
Parameters:
pcLoggerType CHARACTER
pbLogger buffer
Returns LOGICAL
logical TRUE if a logger record was found. If TRUE, the
Top

PRIVATE Progress.Lang.Class GetABLType (JsonObject, character)

/* Returns a type name from a property we expect to have a type. Basically resolving the
typeName / typeProperty values into an P.L.C
"definitions": {
"typeName": {
"type": "string",
"description": "An OOABL type name",
"pattern": "^[A-Za-z]+[A-Za-z$0-9-&#%.]+[A-Za-z$0-9-&#%]*$"
},
"typeProperty": {
"type": "object",
"properties": {
"type": {"$ref": "#/definitions/typeName"},
"hash": {
"type": "string",
"description": "A hash value to validate that the OOABL type is the expected version."
}
},
"required": ["type"]
},
"builderProperty": {
"oneOf": [
{"$ref": "#/definitions/typeProperty"},
{"$ref": "#/definitions/typeName"}
]
}
},
Parameters:
poParent Progress.Json.ObjectModel.JsonObject
pcPropName CHARACTER
Returns Progress.Lang.Class
P.L.Class A resolve ABL type name. May be unknown
Top

PUBLIC OpenEdge.Logging.ILogWriter GetLogger (character)

Inherited from OpenEdge.Logging.LoggerBuilder
Purpose: Returns a logger (ILogWriter)
Parameters:
pcLoggerType CHARACTER
Returns OpenEdge.Logging.ILogWriter
ILogWriter An instance of the default logger
Top

PUBLIC OpenEdge.Logging.ILogWriter GetLogger (handle)

Inherited from OpenEdge.Logging.LoggerBuilder
Purpose: Returns a logger (ILogWriter).
Parameters:
pLoggerType HANDLE
Returns OpenEdge.Logging.ILogWriter
ILogWriter An instance of the default logger
Top

PUBLIC OpenEdge.Logging.ILogWriter GetLogger (Class)

Inherited from OpenEdge.Logging.LoggerBuilder
Purpose: Returns a logger (ILogWriter).
Parameters:
poLoggerType Progress.Lang.Class
Returns OpenEdge.Logging.ILogWriter
ILogWriter An instance of the default logger
Top

PROTECTED OpenEdge.Logging.ILogWriter GetLoggerInstance ()

Overrides OpenEdge.Logging.LoggerBuilder:GetLoggerInstance ()
/* Constructs the actual logger instance
Returns OpenEdge.Logging.ILogWriter
ILogWriter A new or cached logged
Top

PROTECTED DATETIME-TZ GetOptionDateTimeValue (character)

Inherited from OpenEdge.Core.Util.ConfigBuilder
Purpose: Returns an option's datetime value
Parameters:
pcName CHARACTER
Returns DATETIME-TZ
datetime-tz the value
Top

PROTECTED LOGICAL GetOptionLogicalValue (character)

Inherited from OpenEdge.Core.Util.ConfigBuilder
Purpose: Returns an option's logical value
Parameters:
pcName CHARACTER
Returns LOGICAL
logical the value
Top

PROTECTED LONGCHAR GetOptionLongcharValue (character)

Inherited from OpenEdge.Core.Util.ConfigBuilder
Purpose: Returns an option's longchar value
Parameters:
pcName CHARACTER
Returns LONGCHAR
longchar the value
Top

PROTECTED DECIMAL GetOptionNumericValue (character)

Inherited from OpenEdge.Core.Util.ConfigBuilder
Purpose: Returns an option's decimal value
Parameters:
pcName CHARACTER
Returns DECIMAL
decimal the value
Top

PROTECTED Object GetOptionObjectValue (character)

Inherited from OpenEdge.Core.Util.ConfigBuilder
Purpose: Returns an option's object value
Parameters:
pcName CHARACTER
Returns Object
Object the value
Top

PROTECTED CHARACTER GetOptionStringArrayValue (character)

Inherited from OpenEdge.Core.Util.ConfigBuilder
Purpose: Returns an option's character array value
Parameters:
pcName CHARACTER
Returns CHARACTER
character[] the value
Top

PROTECTED CHARACTER GetOptionStringValue (character)

Inherited from OpenEdge.Core.Util.ConfigBuilder
Purpose: Returns an option's character value
Parameters:
pcName CHARACTER
Returns CHARACTER
character the value
Top

PROTECTED LOGICAL HasOption (character)

Inherited from OpenEdge.Core.Util.ConfigBuilder
Purpose: Checks whether a config option already exists
Parameters:
pcConfigName CHARACTER
Returns LOGICAL
logical True if the named configuration option exists
Top

PUBLIC LoadConfig (JsonObject)

/* Loads logging configuration from JSON
Parameters:
poJson Progress.Json.ObjectModel.JsonObject
Top

PRIVATE LoadFromFile (character)

/* Loads logging config from a file
Parameters:
pFileName CHARACTER
Top

PUBLIC OpenEdge.Logging.LoggerBuilder LogAt (LogLevelEnum)

Inherited from OpenEdge.Logging.LoggerBuilder
/* Sets the log level for this logger.
Parameters:
poLevel OpenEdge.Logging.LogLevelEnum
Returns OpenEdge.Logging.LoggerBuilder
LoggerBuilder This builder object
Top

PROTECTED LogMessage (character, LogLevelEnum)

Inherited from OpenEdge.Logging.LoggerBuilder
/* Logs error/messages that are written before a logger instance is successfully built.
ONLY for use by the LoggerBuilder (hence protected). This is intentionally a very
primitive log writer.
Messages are written to the first location found by the algorithm below
1. If a log-manager exists, write there. This will always be the case on a server (PASOE or Classic A/S & WS)
2. The session's temp-dir in a file called loggerbuilder.log
Messages are APPENDED to the output file
Parameters:
pMessage CHARACTER
pLevel OpenEdge.Logging.LogLevelEnum
Top

PROTECTED LOGICAL RemoveOption (character)

Inherited from OpenEdge.Core.Util.ConfigBuilder
Purpose: Removes an option
Parameters:
pcName CHARACTER
Returns LOGICAL
Top

PROTECTED LOGICAL SetOption (character, character)

Inherited from OpenEdge.Core.Util.ConfigBuilder
Purpose: Stores an value as an option
Parameters:
pcName CHARACTER
pcValue CHARACTER
Returns LOGICAL
logical True is the option was overwritten
Top

PROTECTED LOGICAL SetOption (character, character[])

Inherited from OpenEdge.Core.Util.ConfigBuilder
Purpose: Stores an value as an option
Parameters:
pcName CHARACTER
pcValue CHARACTER
Returns LOGICAL
logical True is the option was overwritten
Top

PROTECTED LOGICAL SetOption (character, datetime-tz)

Inherited from OpenEdge.Core.Util.ConfigBuilder
Purpose: Stores a datetime-tzvalue as an option
Parameters:
pcName CHARACTER
ptValue DATETIME-TZ
Returns LOGICAL
logical True is the option was overwritten
Top

PROTECTED LOGICAL SetOption (character, decimal)

Inherited from OpenEdge.Core.Util.ConfigBuilder
Purpose: Stores an numeric value as an option
Parameters:
pcName CHARACTER
pdValue DECIMAL
Returns LOGICAL
logical True is the option was overwritten
Top

PROTECTED LOGICAL SetOption (character, logical)

Inherited from OpenEdge.Core.Util.ConfigBuilder
Purpose: Stores a logical value as an option
Parameters:
pcName CHARACTER
plValue LOGICAL
Returns LOGICAL
logical True is the option was overwritten
Top

PROTECTED LOGICAL SetOption (character, Object)

Inherited from OpenEdge.Core.Util.ConfigBuilder
Purpose: Stores an object value as an option
Parameters:
pcName CHARACTER
poValue Object
Returns LOGICAL
logical True is the option was overwritten
Top

PROTECTED LOGICAL SetOption (Class, Object)

Inherited from OpenEdge.Core.Util.ConfigBuilder
Purpose: Stores an object value as an option
Parameters:
pName Progress.Lang.Class
pValue Object
Returns LOGICAL
logical True is the option was overwritten
Top

PRIVATE ValidateFilter (character, character)

/* Ensures that a Filter type is the one we were expecting.
@throws AppError If a hash is passed and the Filter type's hash does not match
Parameters:
pcFilterType CHARACTER
pcFilterHash CHARACTER


Constructor Detail
Top

STATIC ConfigFileLoggerBuilder ()

/* Static constructor
Top

PUBLIC ConfigFileLoggerBuilder (character)

/* Constructor
Parameters:
pcLoggerType CHARACTER


Property Detail
Top

PUBLIC CHARACTER DefaultLogger

Inherited from OpenEdge.Logging.LoggerBuilder
Returns CHARACTER
Top

PRIVATE OpenEdge.Core.Util.BuilderRegistry FilterBuilders

Returns OpenEdge.Core.Util.BuilderRegistry
Top

PRIVATE OpenEdge.Core.Util.BuilderRegistry Filters

Returns OpenEdge.Core.Util.BuilderRegistry
Top

PUBLIC OpenEdge.Logging.ILogWriter Logger

Inherited from OpenEdge.Logging.LoggerBuilder
Returns OpenEdge.Logging.ILogWriter
Top

PUBLIC CHARACTER LoggerType

Inherited from OpenEdge.Logging.LoggerBuilder
Returns CHARACTER
Top

PUBLIC OpenEdge.Core.Util.BuilderRegistry Registry

Inherited from OpenEdge.Logging.LoggerBuilder
Returns OpenEdge.Core.Util.BuilderRegistry


Copyright © 2019 Progress Software Corporation. All rights Reserved.

Progress® OpenEdge® Release 12.0.0