Error Codes, Debug Support (RFC-021)
The RFC is being drafted.
Document Maintainers: Andi Gabriel Tan 2024. List of other contributors in Annex. 1.
Copyright: MIT license
Copyright © 2018-2024 Axiologic Research and Contributors.
This document is licensed under MIT license.
- 1. Error codes
- 2. General Guide for types of logs
- 3. Control of output in automated tests
- Annex 1. Contributors
1. Error codes
Code | Component | Description |
---|---|---|
0x2xx 0x201 brick not found | bricking | brick not found |
0x3xx | anchoring | |
0x4xx 0x401 | WalletDB | Failed to initialize WalletDB |
0x5xx | BDNS | |
0x6xx | JWTIssuer |
2. General Guide for types of logs
Level | Description |
---|---|
trace (1) | Information for developers only, for debugging during development. |
debug (2) | Technical information that could be used to fix issues in production and in development. |
info (3) | Technical information related to the normal usage of the software. |
log (4) | Business information related to the normal usage of the software. |
warn (5) | Messages that could have an impact on business. |
error (6) | Business-relevant errors or failures. |
The "Info" logging level captures technical details related to the normal operation of the software. These are non-critical messages that provide insights into the flow and state of an application. Such logs are typically used by developers and system administrators to understand the software's behavior under regular conditions. Here are examples of “info” logs:
- “Database connection established successfully.”
- “Configuration file loaded.”
- “User session initiated at [timestamp].”
- “System health check passed.”
- Service X started listening on port Y.”
The "log" level focuses on business-related activities during the software's regular usage. These logs provide insights into user interactions, transactions, and other operations that have business value or significance. They help business analysts, product managers, and other stakeholders understand user behavior, track business metrics, and gather data for decision-making. Here are some examples of “log” messages:
- “User JohnDoe completed a purchase transaction.”
- “Invoice #1234 generated for customer ABC Corp.”
- “Product XYZ added to the shopping cart.”
- “Feedback submitted: ‘Great user experience on the new feature!’”
- “Membership upgraded to premium tier.”
The "warn" logging level is utilized to capture potential issues or irregularities that might not immediately impact the software's functionality but could lead to problems if unaddressed. These messages signal situations where some corrective action might be needed in the future or bring attention to suboptimal conditions within the application. They serve as early indicators for developers, system administrators, or other stakeholders to anticipate and mitigate possible challenges. Here are some examples of “warn” logs:
- “Disk space usage at 85%; consider freeing up space soon.”
- “API rate limit nearing threshold.”
- “Deprecated function ‘oldFunction()’ used in module A; consider updating.”
- “Mismatch in data format detected; defaulting to standard configuration.”
- “User login attempts nearing lockout limit.”
The "error" logging level is reserved for capturing serious issues that disrupt the normal operation of the software or result in a failure to complete a particular task. These messages indicate that an error has occurred which may adversely affect the user experience, data integrity, or system stability. Immediate attention and corrective action are typically required. Developers, system administrators, and support teams often rely on error logs to diagnose and address critical issues promptly. Here are some examples of “error” logs:
- “Database connection failed; retrying in 60 seconds.”
- “Payment transaction aborted due to a timeout.”
- “Null pointer exception encountered in module B.”
- “Failed to write data to log file; disk possibly full.”
- “Critical security breach detected; user session terminated.”
3. Control of output in automated tests
$$.debug.verbosityLevel()
Used by the logger to decide if it outputs a log or not
$$.debug.verbosity(level
// level is trace, debug, info, log, warn, error
- default level is trace in OpenDSU (new projects, if not set)
- info in production
- debug in tests
Contributors
-
Axiologic Research: New content and improvements. Original texts under PharmaLedger Association and Novartis funding. MIT licensed content accordingly with the contracts. Publish and maintain the www.opendsu.org site.
- PrivateSky Research Project: MIT licensed content accordingly with the contracts. https://profs.info.uaic.ro/~ads/PrivateSky/
Annex 1. Contributors
Current Editors | |
---|---|
Andi-Gabriel Țan | andi@axiologic.net |
Contributors Axiologic Research | |
Sînică Alboaie | sinica.alboaie@axiologic.net |
Daniel Sava | daniel@axiologic.net |
Cosmin Ursache | cosmin@axiologic.net |