# Class CIM_MessageLog
extends CIM_Log

MessageLog represents any type of event, error or informational register or chronicle. The object describes the existence of the log and its characteristics. Several methods are defined for retrieving, writing and deleting log entries, and maintaining the log. This type of log uses iterators to access the log records, whereas its peer class, RecordLog, uses more abstracted access mechanisms.

### Table of Contents
Hierarchy
Direct Known Subclasses
Class Qualifiers
Class Properties
Class Methods

## Class Hierarchy

CIM_ManagedElement
|
+--CIM_ManagedSystemElement
|
+--CIM_LogicalElement
|
+--CIM_EnabledLogicalElement
|
+--CIM_Log
|
+--CIM_MessageLog

## Direct Known Subclasses

## Class Qualifiers

Name | Data Type | Value
--- | --- | ---
Description | string | MessageLog represents any type of event, error or informational register or chronicle. The object describes the existence of the log and its characteristics. Several methods are defined for retrieving, writing and deleting log entries, and maintaining the log. This type of log uses iterators to access the log records, whereas its peer class, RecordLog, uses more abstracted access mechanisms.
UMLPackagePath | string | CIM::System::Logs
Version | string | 2.14.0

## Class Properties

### Local Class Properties

Name | Data Type | Default Value | Qualifiers
--- | --- | --- | ---
Name | Data Type | Value
CharacterSet | uint16 |
Description | string | An enumeration describing the character set used to record data in the individual Log entries. For example, the Log records may contain ASCII data (value=2), or be raw octet strings (value=10).
ValueMap | string | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
Values | string | Unknown, Other, ASCII, Unicode, ISO2022, ISO8859, Extended UNIX Code, UTF-8, UCS-2, Bitmapped Data, OctetString, Defined by Individual Records
CreationClassName | string |
Description | string | CreationClassName indicates the name of the class or the subclass used in the creation of an instance. When used with the other key properties of this class, this property allows all instances of this class and its subclasses to be uniquely identified.
Key | boolean | true
MaxLen | uint32 | 256
HeaderFormat | string |
Description | string | If the SizeOfHeader property is non-zero, this property describes the structure and format of the Log header. It is a free-form string. If the SizeOfHeader property is 0, then the information in this property is undefined.
IsFrozen | boolean |
Description | string | Boolean indicating that the Log is currently frozen and modifications are not allowed.
LastChange | uint16 |
Description | string | An enumeration describing the last change to the MessageLog.
ValueMap | string | 0, 1, 2, 3, 4
Values | string | Unknown, Add, Delete, Modify, Log Cleared
MaxLogSize | uint64 |
Description | string | The maximum size, in bytes, to which the Log can grow. If there is no maximum, then MaxLogSize should be set to 0.
PUnit | string | byte
Units | string | Bytes
MaxRecordSize | uint64 |
Description | string | Maximum size, in bytes, to which an individual Log entry (record) can grow - if the Capabilities array includes a value of 7 ("Variable Length Records Supported"). If the Capabilities array does not include a 7, then the Log only supports fixed length entries. The size of these entries is described by this property.
PUnit | string | byte
Units | string | Bytes
Name | string |
Description | string | The inherited Name serves as part of the key (a unique identifier) for the MessageLog instance.
Key | boolean | true
MaxLen | uint32 | 256
Override | string | Name
OtherPolicyDescription | string |
Description | string | When the OverwritePolicy specifies a value of 1 ("Other"), the Log's behavior can be explained using this property. If OverwritePolicy is not 1, then this property's contents are undefined.
ModelCorrespondence | string | CIM_MessageLog.OverwritePolicy
OverwritePolicy | uint16 |
Description | string | An enumeration describing the behavior of the Log, when it becomes full or near full. For example, the Log may wrap (value=2) or may simply stop recording entries (value =7). Some of the property's possible values need further explanation: 3="Clear When Near Full" indicates that all of the Log's entries will be deleted when a specified record capacity is reached. The capacity is specified in percentage, using the property, PercentageNearFull. 'Near Full' may be less than 100% if the Log takes time to clear, and a position should always be available for new records. 4="Overwrite Outdated When Needed" describes that Log entries (timestamped later than the date/time specified in the property, TimeWhenOutdated) can be overwritten. 5="Remove Outdated Records" specifies that records (timestamped later than the date/time specified in the property, TimeWhenOutdated) are logically and/or physically removed from the Log. 6="Overwrite Specific Records" indicates that specially flagged records may be overwritten. This property only makes sense when the Capabilities array includes a value of 10, "Can Flag Records for Overwrite".
ModelCorrespondence | string | CIM_MessageLog.OtherPolicyDescription, CIM_MessageLog.TimeWhenOutdated, CIM_MessageLog.PercentageNearFull
Override | string | OverwritePolicy
ValueMap | string | 0, 1, 2, 3, 4, 5, 6, 7
Values | string | Unknown, Other, Wraps When Full, Clear When Near Full, Overwrite Outdated When Needed, Remove Outdated Records, Overwrite Specific Records, Never Overwrite
PercentageNearFull | uint8 |
Description | string | If the OverwritePolicy is based on clearing records when the Log is near full (value=3), this property defines the record capacity (in percentage) that is considered to be 'near full'.
ModelCorrespondence | string | CIM_MessageLog.OverwritePolicy
PUnit | string | percent
Units | string | Percent
RecordHeaderFormat | string |
Description | string | If the SizeOfRecordHeader property is non-zero, this property describes the structure and format of the record headers. It is a free-form string. If the SizeOfRecordHeader property is 0, then the information in this property is undefined.
RecordLastChanged | uint64 |
Description | string | When a change is made to the Log, the record number that was modified is captured.
SizeOfHeader | uint64 |
Description | string | The size of the Log header, in bytes, if one is present. If there is no Log header, then this property should be set to 0. Headers may include general information about the Log such as the current number of records, time of last update, or a pointer to the location of the first Log entry. Note that this property is NOT the size of the header for an individual Log entry. The latter is described by the property, SizeOfRecordHeader.
PUnit | string | byte
Units | string | Bytes
SizeOfRecordHeader | uint64 |
Description | string | The size of the header for the Log's individual entries, in bytes, if record headers are defined. If there are no record headers, then this property should be set to 0. Record headers may include information such as the type of the Log entry, the date/time that the entry was last updated, or a pointer to the start of optional data. Note that this property defines the header size for individual records in the Log, while the SizeOfHeader property describes the Log's overall header, typically located at the start of the MessageLog.
PUnit | string | byte
Units | string | Bytes
TimeOfLastChange | datetime |
Description | string | When a change is made to the Log, the date/time of that modification is captured. This property could be used to event against any update to the MessageLog.
TimeWhenOutdated | datetime |
Description | string | If the OverwritePolicy is based on 'outdated' records (values 4 or 5), this property defines when a Log entry is considered to be outdated - either by time interval or at a specific date and time.
ModelCorrespondence | string | CIM_MessageLog.OverwritePolicy
Capabilities | uint16[] |
ArrayType | string | Indexed
Description | string | An array of integers indicating the Log capabilities. Information such as "Write Record Supported" (value= 2) or "Variable Length Records Supported" (8) is specified in this property.
ModelCorrespondence | string | CIM_MessageLog.CapabilitiesDescriptions
ValueMap | string | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
Values | string | Unknown, Other, Write Record Supported, Delete Record Supported, Can Move Backward in Log, Freeze Log Supported, Clear Log Supported, Supports Addressing by Ordinal Record Number, Variable Length Records Supported, Variable Formats for Records, Can Flag Records for Overwrite
CapabilitiesDescriptions | string[] |
ArrayType | string | Indexed
Description | string | An array of free-form strings providing more detailed explanations for any of the Log features indicated in the Capabilities array. Note, each entry of this array is related to the entry in the Capabilities array that is located at the same index.
ModelCorrespondence | string | CIM_MessageLog.Capabilities

### Inherited Properties

Name | Data Type | Class Origin
--- | --- | ---
Caption | string | CIM_ManagedElement
CommunicationStatus | uint16 | CIM_ManagedSystemElement
CurrentNumberOfRecords | uint64 | CIM_Log
Description | string | CIM_ManagedElement
DetailedStatus | uint16 | CIM_ManagedSystemElement
ElementName | string | CIM_ManagedElement
EnabledDefault | uint16 | CIM_EnabledLogicalElement
EnabledState | uint16 | CIM_EnabledLogicalElement
HealthState | uint16 | CIM_ManagedSystemElement
InstallDate | datetime | CIM_ManagedSystemElement
InstanceID | string | CIM_ManagedElement
LogState | uint16 | CIM_Log
MaxNumberOfRecords | uint64 | CIM_Log
OperatingStatus | uint16 | CIM_ManagedSystemElement
OtherEnabledState | string | CIM_EnabledLogicalElement
PrimaryStatus | uint16 | CIM_ManagedSystemElement
RequestedState | uint16 | CIM_EnabledLogicalElement
Status | string | CIM_ManagedSystemElement
TimeOfLastStateChange | datetime | CIM_EnabledLogicalElement
TransitioningToState | uint16 | CIM_EnabledLogicalElement
AvailableRequestedStates | uint16[] | CIM_EnabledLogicalElement
OperationalStatus | uint16[] | CIM_ManagedSystemElement
StatusDescriptions | string[] | CIM_ManagedSystemElement

## Class Methods

### Local Class Methods

#### PositionToFirstRecord (uint32)

#### Method Qualifiers (PositionToFirstRecord)

Name | Data Type | Value
--- | --- | ---
Description | string | Requests that an iteration of the MessageLog be established and that the iterator be set to the first entry in the Log. An identifier for the iterator is returned as an output parameter of the method. Regarding iteration, you have 2 choices: 1) Embed iteration data in the method call, and allow implementations to track/ store this data manually; or, 2) Iterate using a separate object (for example, class ActiveIterator) as an iteration agent. The first approach is used here for interoperability. The second requires an instance of the Iterator object for EACH iteration in progress. 2's functionality could be implemented underneath 1. The return value from PositionToFirstRecord should be 0 if the request was successfully executed, 1 if the request is not supported and some other value if an error occurred. In a subclass, the set of possible return codes could be specified, using a ValueMap qualifier on the method. The strings to which the ValueMap contents are 'translated' may also be specified in the subclass as a Values array qualifier.

#### Method Parameters (PositionToFirstRecord)

Name | Type | Qualifiers
--- | --- | ---
Name | Data Type | Value
IterationIdentifier | string
Description | string | An identifier for the iterator.
IN | boolean | false
OUT | boolean | true

#### PositionAtRecord (uint32)

#### Method Qualifiers (PositionAtRecord)

Name | Data Type | Value
--- | --- | ---
Description | string | Requests that the Log's iteration identifier be advanced or retreated a specific number of records, or set to the entry at a specified numeric location. These two different behaviors are accomplished using the input parameters of the method. Advancing or retreating is achieved by setting the MoveAbsolute boolean to FALSE, and then specifying the number of entries to advance or retreat as positive or negative values in the RecordNumber parameter. Moving to a specific record number is accomplished by setting the MoveAbsolute input parameter to TRUE, and then placing the record number into the RecordNumber parameter. This can only be done if the Capabilities array includes a value of 7, "Supports Addressing by Ordinal Record Number". After the method completes and if ordinal record numbers are supported (the Capabilities array includes a 7), the current record number is returned in the RecordNumber output parameter. Otherwise, the value of the parameter is undefined. IterationIdentifier is defined as an Input/Output method parameter to allow the Log to embed state information in the Identifier and potentially let the identifier be maintained by the using application. The return value from PositionAtRecord should be 0 if the request was successfully executed, 1 if the request is not supported and some other value if an error occurred. If the request is not supported, check the Capabilities array regarding support for ordinal record number addressing and backward movement in the Log (values 7 and 4, respectively). Note: In a subclass, the set of possible return codes could be described using a ValueMap qualifier on the method. The strings to which the ValueMap contents are 'translated' may also be specified in the subclass as a Values array qualifier.

#### Method Parameters (PositionAtRecord)

Name | Type | Qualifiers
--- | --- | ---
Name | Data Type | Value
IterationIdentifier | string
Description | string | An identifier for the iterator.
IN | boolean | true
OUT | boolean | true
MoveAbsolute | boolean
Description | string | Advancing or retreating the IterationIdentifier is achieved by setting the MoveAbsolute boolean to FALSE, and specifying the number of entries to advance or retreat as positive or negative values in the RecordNumber parameter. Moving to a specific record number is accomplished by setting the MoveAbsolute parameter to TRUE, and placing the record number into the RecordNumber parameter.
IN | boolean | true
RecordNumber | sint64
Description | string | The relative or absolute record number.
IN | boolean | true
OUT | boolean | true

#### GetRecord (uint32)

#### Method Qualifiers (GetRecord)

Name | Data Type | Value
--- | --- | ---
Description | string | Requests that the record indicated by the IterationIdentifier be retrieved from the MessageLog. After retrieval, the IterationIdentifier may be advanced to the next record by setting the PositionToNext input parameter to TRUE. Two output parameters are defined for the method - RecordData which holds the contents of the Log entry (as an array of bytes that can be recast to an appropriate format), and RecordNumber which returns the current record number addressed via the Iteration Identifier. The RecordNumber parameter is only defined/valid when the Capabilities array indicates that ordinal record number addressing is supported (a value of 7). IterationIdentifier is defined as an Input/Output method parameter to allow the Log to embed state information in the Identifier and potentially let the identifier be maintained by the using application. The return value from GetRecord should be 0 if the request was successfully executed, 1 if the request is not supported, and some other value if an error occurred. In a subclass, the set of possible return codes could be specified, using a ValueMap qualifier on the method. The strings to which the ValueMap contents are 'translated' may also be specified in the subclass as a Values array qualifier.

#### Method Parameters (GetRecord)

Name | Type | Qualifiers
--- | --- | ---
Name | Data Type | Value
IterationIdentifier | string
Description | string | An identifier for the iterator.
IN | boolean | true
OUT | boolean | true
PositionToNext | boolean
Description | string | Boolean indicating that the Iteration Identifier should be advanced to the next record, after retrieving the current Log entry.
IN | boolean | true
RecordNumber | uint64
Description | string | The record number.
IN | boolean | false
OUT | boolean | true
RecordData | uint8[]
Description | string | The record data.
IN | boolean | false
OUT | boolean | true

#### DeleteRecord (uint32)

#### Method Qualifiers (DeleteRecord)

Name | Data Type | Value
--- | --- | ---
Description | string | Requests that the record indicated by the IterationIdentifier be deleted from the MessageLog. After deletion, the Iteration Identifier may be advanced to the next record by setting the PositionToNext input parameter to TRUE. If set to FALSE, then the IterationIdentifier will be positioned at the previous record. Two output parameters are defined for the method - RecordData which holds the contents of the deleted Log entry (as an array of bytes that can be recast to an appropriate format or discarded), and RecordNumber which returns the current record number addressed via the IterationIdentifier. The RecordNumber parameter is only defined/valid when the Capabilities array indicates that ordinal record number addressing is supported (a value of 7). IterationIdentifier is defined as an Input/Output method parameter to allow the Log to embed state information in the Identifier and potentially let the identifier be maintained by the using application. The return value from DeleteRecord should be 0 if the request was successfully executed, 1 if the request is not supported, and some other value if an error occurred. If the request is not supported, check the Capabilities array that a value of 3 ("Delete Record Supported") is specified. Note: In a subclass, the set of possible return codes could be described using a ValueMap qualifier on the method. The strings to which the ValueMap contents are 'translated' may also be specified in the subclass as a Values array qualifier.

#### Method Parameters (DeleteRecord)

Name | Type | Qualifiers
--- | --- | ---
Name | Data Type | Value
IterationIdentifier | string
Description | string | An identifier for the iterator.
IN | boolean | true
OUT | boolean | true
PositionToNext | boolean
Description | string | Boolean that when set to TRUE requests the IterationIdentifier to be advanced to the next record, after the current entry is deleted. If set to FALSE, IterationIdentifier is set to the previous record.
IN | boolean | true
RecordNumber | uint64
Description | string | The record number.
IN | boolean | false
OUT | boolean | true
RecordData | uint8[]
Description | string | The record data.
IN | boolean | false
OUT | boolean | true

#### WriteRecord (uint32)

#### Method Qualifiers (WriteRecord)

Name | Data Type | Value
--- | --- | ---
Description | string | Requests that a record be inserted at the Log position indicated by the IterationIdentifier. The entry's data is provided in the RecordData input parameter. After insertion, the IterationIdentifier may be advanced to the next record by setting the PositionToNext input parameter to TRUE. The output parameter, RecordNumber, returns the current record number addressed via the IterationIdentifier. This parameter is only defined/valid when the Capabilities array indicates that ordinal record number addressing is supported (a value of 7). IterationIdentifier is defined as an Input/Output method parameter to allow the Log to embed state information in the Identifier and potentially let the identifier be maintained by the using application. The return value from WriteRecord should be 0 if the request was successfully executed, 1 if the request is not supported, and some other value if an error occurred. If the request is not supported, check the Capabilities array that a value of 2 ("Write Record Supported") is specified. Note: In a subclass, the set of possible return codes could be described using a ValueMap qualifier on the method. The strings to which the ValueMap contents are 'translated' may also be specified in the subclass as a Values array qualifier.

#### Method Parameters (WriteRecord)

Name | Type | Qualifiers
--- | --- | ---
Name | Data Type | Value
IterationIdentifier | string
Description | string | An identifier for the iterator.
IN | boolean | true
OUT | boolean | true
PositionToNext | boolean
Description | string | Boolean indicating that the Iteration Identifier should be advanced to the next record, after writing the Log entry.
IN | boolean | true
RecordNumber | uint64
Description | string | The record number.
IN | boolean | false
OUT | boolean | true
RecordData | uint8[]
Description | string | The record data.
IN | boolean | true

#### CancelIteration (uint32)

#### Method Qualifiers (CancelIteration)

Name | Data Type | Value
--- | --- | ---
Description | string | Requests that an iteration of the Log, identified by the IterationIdentifier input parameter, be stopped. The return value from CancelIteration should be 0 if the request was successfully executed, 1 if the request is not supported and some other value if an error occurred. In a subclass, the set of possible return codes could be specified, using a ValueMap qualifier on the method. The strings to which the ValueMap contents are 'translated' may also be specified in the subclass as a Values array qualifier.

#### Method Parameters (CancelIteration)

Name | Type | Qualifiers
--- | --- | ---
Name | Data Type | Value
IterationIdentifier | string
Description | string | An identifier for the iterator.
IN | boolean | true

#### FreezeLog (uint32)

#### Method Qualifiers (FreezeLog)

Name | Data Type | Value
--- | --- | ---
Description | string | Requests that the MessageLog be placed in a frozen state ("Freeze" input parameter = TRUE) or 'unfrozen' (= FALSE). If frozen, modifications to the Log will not be allowed. If successful, the Log's IsFrozen boolean property will be updated to reflect the desired state. The method's return code should be 0 if the request was successfully executed, 1 if the request is not supported and some other value if an error occurred. If the request is not supported, check the Capabilities array that a value of 5 ("Freeze Log Supported") is specified. Note: In a subclass, the set of possible return codes could be described using a ValueMap qualifier on the method. The strings to which the ValueMap contents are 'translated' may also be specified in the subclass as a Values array qualifier.

#### Method Parameters (FreezeLog)

Name | Type | Qualifiers
--- | --- | ---
Name | Data Type | Value
Freeze | boolean
Description | string | If TRUE then freeze the log, if FALSE 'unfreeze' the log.
IN | boolean | true

#### FlagRecordForOverwrite (uint32)

#### Method Qualifiers (FlagRecordForOverwrite)

Name | Data Type | Value
--- | --- | ---
Description | string | Requests that the record indicated by the IterationIdentifier be flagged as overwriteable. This method is only supported when the Capabilities array includes a value of 10, "Can Flag Records for Overwrite". After updating the entry, the IterationIdentifier may be advanced to the next record by setting the PositionToNext input parameter to TRUE. One output parameter is defined for the method RecordNumber. It returns the current record number addressed via the Iteration Identifier. This parameter is only defined/valid when the Capabilities array indicates that ordinal record number addressing is supported (a value of 7). IterationIdentifier is defined as an Input/Output method parameter to allow the Log to embed state information in the Identifier and potentially let the identifier be maintained by the using application. The return value from FlagRecordForOverwrite should be 0 if the request was successfully executed, 1 if the request is not supported, and some other value if an error occurred. In a subclass, the set of possible return codes could be specified, using a ValueMap qualifier on the method. The strings to which the ValueMap contents are 'translated' may also be specified in the subclass as a Values array qualifier.

#### Method Parameters (FlagRecordForOverwrite)

Name | Type | Qualifiers
--- | --- | ---
Name | Data Type | Value
IterationIdentifier | string
Description | string | An identifier for the iterator.
IN | boolean | true
OUT | boolean | true
PositionToNext | boolean
Description | string | Boolean indicating that the Iteration Identifier should be advanced to the next record, after updating the current Log entry.
IN | boolean | true
RecordNumber | uint64
Description | string | The record number.
IN | boolean | false
OUT | boolean | true

### Inherited Class Methods

Name | Return Type | Class Origin
--- | --- | ---
ClearLog | uint32 | CIM_Log
RequestStateChange | uint32 | CIM_EnabledLogicalElement