DE4A Logs and error messages it2
In order to standardise the errors and logs handled by each component, some conventions have been taken, as log patterns, error codes definition or messages content.
The information on this page should be used by each partner who develops a DE4A component, also it should be maintained to have a proper messages reference and be aware which information will include.
Apart from the usual reasons of the logging and error handling, in the DE4A project, there are 3 main bullet points on which the definition of messages is based:
- Kafka tracking: messages sent to the Kafka server which can be previewed at: https://de4a.simplegob.com/package-tracker/#!detail
- Metrics logs: messages marked with a special tag inside the common log file or logged on a separated file, which will be used to analyze and raise some metrics about each system
- Error convention: standardise the error messages and codes
Structure definition
This section will describe the hierarchy and model followed to build the different logs and messages. There are multiple patterns depending on the message nature, but the following tables will be a common reference to understand the rest of information collected in the page.
General structure
The log message follows the structure below:
[timestamp] [level] [message code] [logging participant ID] + Specific text message
Where:
- [timestamp]: when the log message is written. ISO 8601 format with UTC time, e.g. [2022-07-26T12:41:13.666Z]
- [level]: INFO, ERROR, WARN or DEBUG
- [message code]: 5-character string consisting of:
Component code (2 letters) + Level code (1 letter) + Template (2 digits)
- [Logging participant ID]: composed of:
Acronym of the participant's name + ‘-’ + Two-letter country code
- Specific text message: instance of the text message template that is referred to in the message code. In the case of messages logged by Data Evaluators and Data Owners (codes starting with DE and DO respectively), the text is preceded by [Use Case] that identifies the running use case.
Details of the above mentioned parts of the log message are included below the following examples.
Example of a log message (response message, INFO level, by a DT):
[2021-07-26T12:41:13.657Z] [INFO] [DTI07] [SGAD-ES] Evidence Response message received: ResponseExtractMultiEvidenceType - 2ecda60e-3824-4e92-a459-7c4a81258952 - iso6523-actorid-upis::9991:pt990000101 - iso6523-actorid-upis::9920:ess2833002e – (09754288-72b9-41d0-92b2-59f02506891c:urn:de4a-eu:CanonicalEvidenceType::HigherEducationDiploma:2.0, f0cbbb5f-45d6-4d1e-8be4-047c1ce2ae8b:DOE01)
Example of a log message (response message ERROR level, by a DO):
[2021-08-16T19:01:33.803Z] [ERROR] [DOE02] [MIZŠ-SI] [UC#1.1] Evidence not available yet (delayed)
ERROR level log messages should contain the same error code and text than the corresponding ErrorResponseItem within IEM response message:
Log message | IEM Response message | Example |
---|---|---|
Message code | ErrorResponseItem/CodeThe log
message follows the structure bellow: |
DRE05 |
Specific text | ErrorResponseItem/MessageThe log
message follows the structure bellow: |
Missing or invalid arguments at {service requested}: {missing arguments} |
Layer
The layer concept will be used to name the system level where the message comes from.
Layer | Layer Code | Description |
---|---|---|
Communications | 1 | External connections/communications performed by the Connector |
Internal failure | 2 | Internal failure of the Connector to be handled and stored in ErrorTypes wrapped in DE4A responses |
Configuration | 3 | Unexpected situation due to a missing configuration paramater |
Business | 4 | Unsuccessful situation on the business flow |
Module
A reference to each DE4A module possibly involved in an interaction. A "None" element has been included to represent the situation where a message occurs internally in a certain component.
Module Name | Module Code |
---|---|
IDK | 01 |
SMP | 02 |
Connector DR | 03 |
Connector DT | 04 |
Data Owner | 05 |
Data Evaluator | 06 |
None | 00 |
Type
It is mean to use just for the Connector log messages (metrics and Kafka).
Log Type | Type code |
---|---|
Services | 01 |
Client | 02 |
AS4 | 03 |
Severity
Severity log messages.
Severity | Severity code |
---|---|
DEBUG | 01 |
INFO | 02 |
WARNING | 03 |
Error messages
As part of the logging standardisation, some error messages templates have been defined. Those messages will be thrown by each component with the corresponding parameterisation.
Error message | Code | Parameters |
---|---|---|
Service requested {0} not found | 01 | {0}: REST service requested |
Arguments missing or invalid at {0} - {1} | 02 | {0}: Service requested
{1}: Missing arguments |
Connection error with {0} - {1} | 03 | {0}: Module name
{1}: Inherited error message |
Error on response from {0} - {1} | 04 | {0}: Module name
{1}: Inherited error message |
Object conversion error on {0} - {1} | 05 | {0}: Module name
{1}: Inherited error message |
Error accessing/saving data on {0} - {1} | 06 | {0}: Module name
{1}: Inherited error message |
Scheme validation failed for {0} message - {1} | 07 | {0}: Message type
{1}: Inherited error message |
Error occurred on AS4 Gateway to {0} - {1} | 08 | {0}: Module name
{1}: Inherited error message |
Failed to establish user identity | 09 | - |
Error extracting evidence | 10 | - |
Error in identity matching | 11 | - |
Unsuccessful completion of preview | 12 | - |
Preview rejected by user | 13 | - |
Failed to re-establish user identity | 14 | - |
Evidence not available yet (delayed) | 15 | - |
Unsuccessful generation of the canonical evidence | 16 | - |
DE4A pilot process started | 17 | - |
DE4A pilot process finished | 18 | - |
Complementary syntaxis for the logs to be collected
[prefix]
(configurable) |
[timestamp] | [Level] | [Error/Log Code] | [UC#] | [Origin] | [Destiny]
(optional) |
[Message] |
---|---|---|---|---|---|---|---|
Static value: DE4A METRICS | YYYY-MM-DD HH:MM:SS:mm (UTC) | DEBUG, INFO, WARNING, FATAL | To extract from this list | Number to identify the pilot use case.
Options: 1.1, 1.2, 1.3, 2.1, 2.2, 3.1, 3.2, 3.3 |
Entity where the message is originated | Entity where the message is targeting | Message extracted from the field Message in this tab |
Example of log to be collected for metric evaluation purposes:
DE4A METRICS - [2021-07-13 14:15:51:657] [INFO] [10104] [ ] [CONNECTOR DR] [CONNECTOR DT] Connection error with CONNECTOR DT - It is not possible to retrieve data from the SMP, either because of a connection problem or because it does not exist.
Connector
Specific messages for the Connector. Each component around the Connector should be aware of the codes and content of these messages to act accordingly on each case.
Error messages
Layer | #Layer | Module | #Module | Error type | # | Error Code |
---|---|---|---|---|---|---|
Communications | 1 | None | 00 | Service requested {0} not found | 01 | 10001 |
Communications | 1 | None | 00 | Scheme validation failed for {0} message - {1} | 07 | 10007 |
Communications | 1 | IDK | 01 | Service requested {0} not found | 01 | 10101 |
Communications | 1 | IDK | 01 | Arguments missing or invalid at {0} - {1} | 02 | 10102 |
Communications | 1 | IDK | 01 | Error on response from {0} - {1} | 04 | 10104 |
Communications | 1 | IDK | 01 | Connection error with {0} - {1} | 03 | 10103 |
Communications | 1 | IDK | 01 | Scheme validation failed for {0} message - {1} | 07 | 10107 |
Communications | 1 | SMP | 02 | Error on response from {0} - {1} | 04 | 10204 |
Communications | 1 | SMP | 02 | Service requested {0} not found | 01 | 10201 |
Communications | 1 | SMP | 02 | Connection error with {0} - {1} | 03 | 10203 |
Communications | 1 | SMP | 02 | Scheme validation failed for {0} message - {1} | 07 | 10207 |
Communications | 1 | Data Owner | 05 | Connection error with {0} - {1} | 03 | 10503 |
Communications | 1 | Data Owner | 05 | Service requested {0} not found | 01 | 10501 |
Communications | 1 | Data Owner | 05 | Error accessing/saving data on {0} - {1} | 06 | 10506 |
Communications | 1 | Data Owner | 05 | Error on response from {0} - {1} | 04 | 10504 |
Communications | 1 | Data Owner | 05 | Scheme validation failed for {0} message - {1} | 07 | 10507 |
Communications | 1 | Data Evaluator | 06 | Service requested {0} not found | 01 | 10601 |
Communications | 1 | Data Evaluator | 06 | Error on response from {0} - {1} | 04 | 10604 |
Communications | 1 | Data Evaluator | 06 | Connection error with {0} - {1} | 03 | 10603 |
Communications | 1 | Data Evaluator | 06 | Scheme validation failed for {0} message - {1} | 07 | 10607 |
Communications | 1 | Connector DR | 03 | Error occurred on AS4 Gateway to {0} - {1} | 08 | 10308 |
Communications | 1 | Connector DT | 04 | Error occurred on AS4 Gateway to {0} - {1} | 08 | 10408 |
Internal failure | 2 | None | 00 | Object conversion error on {0} - {1} | 05 | 20005 |
Internal failure | 2 | None | 00 | Error accessing/saving data on {0} - {1} | 06 | 20006 |
Internal failure | 2 | None | 00 | Error occurred on AS4 Gateway to {0} - {1} | 08 | 20008 |
Internal failure | 2 | None | 00 | Object conversion error on {0} - {1} | 05 | 20005 |
Configuration | 3 | None | 00 | Error occurred on AS4 Gateway to {0} - {1} | 08 | 30008 |
Log messages
Messages meant to be sent to the Kafka server and also to be printed at the logging files of the Connector.
Message | #Message | Type | #Type | Parameters | Log code |
---|---|---|---|---|---|
Legacy IM Request message received - Request ID: {0}, Canonical Evidence Type: {1}, Data Evaluator: {2}, Data Owner: {3} | 00 | Services | 01 | {0}: RequestId
{1}: CanonicalEvidenceType {2}: DataEvaluator {3}: DataOwner |
0100 |
IM Request message received - Request ID: {0}, Canonical Evidence Type: {1}, Data Evaluator: {2}, Data Owner: {3} | 01 | Services | 01 | {0}: RequestId
{1}: CanonicalEvidenceType {2}: DataEvaluator {3}: DataOwner |
0101 |
USI Request message received - Request ID: {0}, Canonical Evidence Type: {1}, Data Evaluator: {2}, Data Owner: {3} | 02 | Services | 01 | {0}: RequestId
{1}: CanonicalEvidenceType {2}: DataEvaluator {3}: DataOwner |
0102 |
03 | Services | 01 | {0}: CanonicalEvidenceType
{1}: CountryCode {2}: DataOwnerId |
0103 | |
Subscription Request message received - Request ID: {0}, Canonical Evidence Type: {1}, Data Evaluator: {2}, Data Owner: {3} | 04 | Services | 01 | {0}: RequestId
{1}: CanonicalEvidenceType {2}: DataEvaluator {3}: DataOwner |
0104 |
Event Notification message received - Request ID: {0}, Canonical Evidence Type: {1}, Data Evaluator: {2}, Data Owner: {3} | 05 | Services | 01 | {0}: RequestId
{1}: CanonicalEvidenceType {2}: DataEvaluator {3}: DataOwner |
0105 |
Legacy IM Response Evidence message received - Request ID: {0}, Canonical Evidence Type: {1}, Data Evaluator: {2}, Data Owner: {3} | 06 | Services | 01 | {0}: RequestId
{1}: CanonicalEvidenceType {2}: DataEvaluator {3}: DataOwner |
0106 |
Redirect User message received - Request ID: {0}, Canonical Evidence Type: {1}, Data Evaluator: {2}, Data Owner: {3} | 07 | Services | 01 | {0}: RequestId
{1}: CanonicalEvidenceType {2}: DataEvaluator {3}: DataOwner |
0107 |
Response Evidence message received - Request ID: {0}, Canonical Evidence Type: {1}, Data Evaluator: {2}, Data Owner: {3} | 08 | Services | 01 | {0}: RequestId
{1}: CanonicalEvidenceType {2}: DataEvaluator {3}: DataOwner |
0108 |
Looking for participant address - Participant Identifier: {0}, Endpoint type: {1} | 01 | Client | 02 | {0}: ParticipantId
{1}: Endpoint type |
0201 |
Sending {0} to the Data Evaluator - RequestId: {1}, DataEvaluatorId: {2}, DataOwnerId: {3}, Endpoint: {4} | 02 | Client | 02 | {0}: Response Type *
{1}: RequestId {2}: DataEvaluatorId {3}: DataOwnerId {4}: Endpoint |
0202 |
Sending {0} to the Data Owner - RequestId: {1}, DataEvaluatorId: {2}, DataOwnerId: {3}, Endpoint: {4} | 03 | Client | 02 | {0}: Request Type *
{1}: RequestId {2}: DataEvaluatorId {3}: DataOwnerId {4}: Endpoint |
0203 |
Sending request to IDK - URL: {0} | 04 | Client | 02 | {0}: URL | 0204 |
Looking for Data Owner address - Data Owner: {0} | 05 | Client | 02 | {0}: DataOwnerId | 0205 |
Data Owner address not found - Data Owner: {0} | 06 | Client | 02 | {0}: DataOwnerId | 0206 |
Sending message via AS4 gateway - SenderId: {0}, ReceivedId: {1}, Canonical Evidence Type: {2}, MessageType: {3} | 01 | AS4 | 03 | {0}: DataEvaluatorId
{1}: DataOwnerId {2}: CanonicalEvidenceType {3}: MessageType |
0301 |
Processing the request received via AS4 gateway | 02 | AS4 | 03 | 0302 |
* Request Types:
- RequestTransferEvidenceIM
- RequestTransferEvidenceLU
- RequestTransferEvidenceUSI
- RequestEventSubscription
* Response Types:
- USIRedirectUser
- ResponseTransferEvidence
- ResponseEventSubscription
- EventNotification
Examples
- Kafka
2021-08-09 14:15:51:657: [de4a-connector-sgad] [INFO] RequestTransferEvidenceUSIDT message received - Request ID: 2ecda60e-3824-4e92-a459-7c4a81258952
- Internal log
[2021-07-13 14:15:51:657] [INFO] [0103] RequestTransferEvidenceUSIDT message received - Request ID: 2ecda60e-3824-4e92-a459-7c4a81258952 - Extra technical information (java source and execution thread)
SSI Authority Agent
Message types
The Authority Agent implements a custom DE4A Logger, which is responsible for producing a pre-defined format of the log message. The Logger provides the following types of messages:
- Info
- Error
Those basic message categories are used to record success or failure of individual operations executed within each API method call.
List of messages
The messages currently logged by the Authority Agent are as follows:
Services - (Info level)
Message | #Message | Type | #Type | Parameters | Severity | Log Code |
---|---|---|---|---|---|---|
{0}: Received input eIDAS user data. | 01 | Client | 02 | {0}: APIMethod | INFO | 0201 |
{0}: Received input userId data. | 02 | Client | 02 | {0}: APIMethod | INFO | 0202 |
{0}: Generated DID invitation for edge agent. | 03 | Client | 02 | {0}: APIMethod | INFO | 0203 |
{0}: Received input evidence data. | 04 | Client | 02 | {0}: APIMethod | INFO | 0204 |
{0}: Signed a Verifiable Credential. | 05 | Client | 02 | {0}: APIMethod | INFO | 0205 |
{0}: Sent a Verifiable Credential to the edge agent. | 06 | Client | 02 | {0}: APIMethod | INFO | 0206 |
{0}: Accepted a submitted Verifiable Presentation. | 07 | Client | 02 | {0}: APIMethod | INFO | 0207 |
{0}: Decoded input eIDAS user data. | 08 | Client | 02 | {0}: APIMethod | INFO | 0208 |
{0}: Validated the digital signature of the submitted VP. | 09 | Client | 02 | {0}: APIMethod | INFO | 0209 |
{0}: Validated the subject of the submitted VP. | 10 | Client | 02 | {0}: APIMethod | INFO | 0210 |
{0}: Received HTTP response code: {1} from endpoint: {2}. | 01 | Services | 01 | {0}: APIMethod
{1}: ResponseCode {2}: Endpoint |
INFO | 0101 |
{0}: Processing the JSON response received from /{1}. | 02 | Services | 01 | {0}: APIMethod
{1}: AriesAPIMethod |
INFO | 0102 |
{0}: Stored current state in {1} internal database. | 03 | Services | 01 | {0}: APIMethod
{1}: Component |
INFO | 0103 |
{0}: Received user {1} status data. | 04 | Services | 01 | {0}: APIMethod
{1}: DataObject |
INFO | 0104 |
{0}: Converted input evidence in format: {1} to format: {2}. | 05 | Services | 01 | {0}: APIMethod
{1}: Format {2}: Format |
INFO | 0105 |
{0}: Received response data PIID: {1}. | 06 | Services | 01 | {0}: APIMethod
{1}: PIID |
INFO | 0106 |
{0}: Found a {1} action match with PIID: {2}. | 07 | Services | 01 | {0}: APIMethod
{1}: DataObject {2}: PIID |
INFO | 0107 |
{0}: Found a Verifiable Presentation with name: {1}. | 08 | Services | 01 | {0}: APIMethod
{1}: VPName |
INFO | 0108 |
{0}: Found a Verifiable Presentation with ID: {1}. | 09 | Services | 01 | {0}: APIMethod
{1}: VPID |
INFO | 0109 |
{0}: Issuer DID has already been generated and registered in EBSI. | 10 | Services | 01 | {0}: Component | INFO | 0110 |
{0}: Successfully created files for EBSI integration. | 11 | Services | 01 | {0}: Component | INFO | 0111 |
{0}: Successfully generated key: {1}, value: {2}. | 12 | Services | 01 | {0}: Component
{1}: KeyType {2}: Value |
INFO | 0112 |
{0}: Successfully exported JWK private key. | 13 | Services | 01 | {0}: Component | INFO | 0113 |
{0}: Successfully imported DID document into Aries. | 14 | Services | 01 | {0}: Component | INFO | 0114 |
Errors – (Error level)
The following list of error messages are recorded on the Communications, Internal failure and Configuration layers:
Layer | #Layer | Module | #Module | Error type | # | Error Code |
---|---|---|---|---|---|---|
Communications | 1 | Authority Agent | 07 | Connection error with {0} - {1} | 03 | 10703 |
Communications | 1 | Authority Agent | 07 | Error on response from {0} - {1} | 04 | 10704 |
Communications | 1 | Authority Agent | 07 | Arguments missing or invalid at {0} - {1} | 02 | 10702 |
Internal failure | 2 | Authority Agent | 07 | Object conversion error on {0} - {1} | 05 | 20705 |
Internal failure | 2 | Authority Agent | 07 | Error accessing/saving data on {0} - {1} | 06 | 20706 |
Internal failure | 2 | Authority Agent | 07 | Error generating {0} key. | 18 | 20718 |
Internal failure | 2 | Authority Agent | 07 | Error exporting JWK private key. | 19 | 20719 |
Internal failure | 2 | Authority Agent | 07 | Error importing DID document into Aries. | 20 | 20720 |
Configuration | 3 | Authority Agent | 07 | Configuration error occurred on {0} | 17 | 30717 |
Final participants DE/DO
The proposal includes specific messages to the final participants which would be part of the metrics and statistics collection. Some basic messages have been defined to identify the possible situations at the Data Evaluator and Data Owner's.
Error warning and local logs to collect
Layer | #Layer | Module | #Module | Error Type | #Type | To be displayed | #Code |
---|---|---|---|---|---|---|---|
Business | 4 | Data Owner | 05 | Error extracting evidence | 10 | Y | 40510 |
Business | 4 | Data Owner | 05 | Evidence not available yet (delayed) | 15 | Y | 40515 |
Business | 4 | Data Owner | 05 | Error in identity matching | 11 | Y | 40511 |
Business | 4 | Data Owner | 05 | Unsuccessful completion of preview | 12 | Y | 40512 |
Business | 4 | Data Owner | 05 | Failed to re-establish user identity | 14 | Y | 40514 |
Business | 4 | Data Owner | 05 | Preview rejected by user | 13 | N | 40513 |
Business | 4 | Data Evaluator | 06 | Failed to establish user identity | 09 | Y | 40609 |
Business | 4 | Data Evaluator | 06 | Preview rejected by user | 13 | N | 40613 |
Business | 4 | Data Owner | 05 | Unsuccessful generation of the canonical evidence | 16 | N | 40516 |
Business | 4 | Data Evaluator | 06 | DE4A pilot process started | 17 | N | 40617 |
Business | 4 | Data Evaluator | 06 | DE4A pilot process finished | 18 | N | 40618 |