{"ref":"capability:logging","page":"/capabilities/logging","json":"/capabilities/logging.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"logging","name":"Logging","domain":"operations-and-runtime","ecosystems":["cap","btp","abap","ui5"],"universal":false,"description":"Seeing what a running service did, in a form something can read afterwards — levels, a formatter that suits a laptop and one that suits a log service.","short":"Seeing what a running service did, in a readable form","core_coverage":{"state":"core-only","assessed_at":"2026-09-27","what_core_does":"cds.log returns a logger by id, with levels from silent to trace, formatters for development and production, and JSON output shaped for SAP Application Logging and SAP Cloud Logging. Winston is supported underneath for anything more. CAP Java logs through the Java logging facade and Spring Boot's configuration, with predefined loggers per component, correlation ids and JDBC tracing for SAP HANA.","where_it_stops":"At lines of text. Correlating them across handlers and services is tracing, which is telemetry's entry, not this one.","sources":[{"url":"https://cap.cloud.sap/docs/node.js/cds-log","title":"cds.log — capire","checked":"2026-09-08","quote":"Returns a logger identified by the given id."},{"url":"https://cap.cloud.sap/docs/java/operating-applications/observability","title":"Observability (CAP Java) — capire","checked":"2026-09-27","quote":"When tracking down erroneous behavior, application logs often provide useful hints to reconstruct the executed program flow and isolate functional flaws."}]},"history":[{"date":"2026-08-31","field":"core_coverage.state","from":"core","to":"core-only","reason":"States renamed to describe who is present rather than to interpret intent. left-open-on-purpose asserted a motive; core-and-community states a fact, with relationship carrying the intent separately."},{"date":"2026-09-09","field":"ecosystems","from":"cap","to":"cap, btp","reason":"The BTP services answering this were in the corpus while the capability was not on the BTP map, so browse counted them behind the door and had no group to render them in. The BTP door is a reading of its own — a fallback to CAP's would assert something false about a service you bind rather than install."},{"date":"2026-09-14","field":"ecosystems","from":"cap, btp","to":"cap, btp, abap","reason":"Nine repositories log from ABAP: six wrap the application log or its ABAP Cloud API, one logs function module calls to its own table, and two send entries to Fluentd, Graylog or Loki."},{"date":"2026-09-27","field":"core_coverage","from":"without the page","to":"cites the page","reason":"capire audit 2026-09-27: a page this capability owns was cited nowhere."},{"date":"2026-10-19","field":"ecosystems","from":"cap, btp, abap","to":"cap, btp, abap, ui5","reason":"SRBJSLogger and openui5-error-collector were staged in intake-20261019-bestofui5 with no capability edge, because this capability was not open on the UI5 door. The UI5 reading comes from the sap/base/Log API documentation and the OpenUI5 Logging and Tracing page."},{"date":"2026-10-26","field":"coverage_by_ecosystem.btp.state","from":"core-only","to":"core-and-community","reason":"Reassessed against the graph (check:capabilities): two independent command lines for Cloud Foundry app logs sit on the BTP door beside SAP's services."},{"date":"2026-10-26","field":"coverage_by_ecosystem.btp.note, coverage_by_ecosystem.btp.community_adds","from":"Every provider behind this door is an SAP BTP service, so core-only is a assessment of the corpus rather than a quote from the core. what_core_does is left empty: ...","to":"Note removed. community_adds names SAP's two log services and the community command lines that read Cloud Foundry logs.","reason":"Reassessed against the graph (check:capabilities): the note explained a state the providers now contradict and made a provider claim that goes stale."},{"date":"2026-10-26","field":"coverage_by_ecosystem.abap.where_it_stops","from":"Inside the system. Logs are read in SLG1, and the page checked describes no way to send entries to a log service outside it.","to":"Inside the system. Logs are read in SLG1; the page checked describes the application log's own function modules and transaction.","reason":"Reassessed against the graph (check:capabilities): the absence claim is dropped, since add-ons now send entries to outside log systems."},{"date":"2026-10-26","field":"coverage_by_ecosystem.abap.community_adds","from":"","to":"Object-oriented wrappers around the application log, exporters from it to Graylog or Loki, and a port for transpiled ABAP.","reason":"Reassessed against the graph (check:capabilities): the state is now community-only and the block needed to say what the community adds."}],"coverage_by_ecosystem":{"btp":{"state":"core-and-community","assessed_at":"2026-09-09","relationship":"unassessed","where_it_stops":"At collection and whatever retention the plan sets. Nothing here decides what an application writes, and a log service is not an audit trail — that is [audit logging](capability:audit-logging).","community_adds":"SAP's side is the services that collect and keep an application's output: [SAP Application Logging service](artifact:btp-application-logging) and [SAP Cloud Logging](artifact:btp-cloud-logging), which also takes metrics and traces. The community adds command lines that read Cloud Foundry logs from a developer's machine, as [cf-logs](artifact:saptools-cf-logs) does for one app and [cf-tail](artifact:saptools-cf-tail) does for every started app in a space."},"abap":{"state":"core-and-community","assessed_at":"2026-09-14","what_core_does":"The application log records application-specific events: log objects are defined in SLG0, applications write entries through SAP function modules, and SLG1 analyses the log. In ABAP Cloud the Application Log API is the class `CL_BALI_LOG`.","where_it_stops":"Inside the system. Logs are read in SLG1; the page checked describes the application log's own function modules and transaction.","community_adds":"Object-oriented wrappers around the application log, as [abap-log](artifact:fabianlupa-abap-log) by [Fabian Lupa](actor:fabianlupa) and [abap-cloud-logger](artifact:greltel-abap-cloud-logger) do; exporters that send its entries to outside log systems such as Graylog or Loki, as [abap-log-exporter](artifact:abap-observability-tools-abap-log-exporter) does; and a port for ABAP transpiled to JavaScript, [open-abap-bal](artifact:open-abap-open-abap-bal) from [open-abap](actor:open-abap).","sources":[{"url":"https://help.sap.com/doc/saphelp_nw75/7.5.5/en-US/c7/69bcc9f36611d3a6510000e835363f/content.htm","title":"SAP Help — Application Logging","checked":"2026-09-14","quote":"Use the transaction SLG1 to analyze the application log."},{"url":"https://github.com/greltel/abap-cloud-logger","title":"greltel/abap-cloud-logger — README","checked":"2026-09-14","quote":"It acts as a fluent wrapper around the standard class `CL_BALI_LOG`"}],"relationship":"unassessed"},"ui5":{"state":"core-and-community","assessed_at":"2026-10-19","relationship":"narrow-by-design","what_core_does":"`sap/base/Log` keeps a client-side log written by the framework and by the application: each entry carries a timestamp, a level from fatal to trace, a message with details and a component, a level can be set per component, `getLogEntries` returns what was collected, and a registered listener is notified of every new entry. The default level is error in the optimized sources and debug in the debug sources.","where_it_stops":"In the browser. The log is read in the console of the browser's developer tools, and getting entries anywhere else is a listener the application registers and writes; the API documentation names sending them to a server as one use for that listener.","community_adds":"[openui5-error-collector](artifact:mauriciolauffer-openui5-error-collector) gathers plain JavaScript errors, unhandled Promise rejections, `sap/base/Log` events and Reporting API errors, from before the UI5 bootstrap on, and posts them to a configured server with `navigator.sendBeacon`. [SRBJSLogger](artifact:srbconsultingteam-srbjslogger) stays in the console and makes an application's own output stand out there, with a scope and a topic on every message and a command that logs the browser and screen details, optionally as a QR code.","sources":[{"url":"https://github.com/SAP/openui5/blob/master/src/sap.ui.core/src/sap/base/Log.js","title":"SAP/openui5 — sap/base/Log.js, API documentation","checked":"2026-10-19","quote":"Provides methods to manage a client-side log and to create entries in it."},{"url":"https://github.com/SAP/openui5/blob/master/src/sap.ui.core/src/sap/base/Log.js","title":"SAP/openui5 — sap/base/Log.js, API documentation","checked":"2026-10-19","quote":"or for sending it to some external target (server)."},{"url":"https://github.com/SAP/openui5-docs/blob/main/docs/04_Essentials/logging-and-tracing-9f4d62c.md","title":"OpenUI5 documentation — Logging and Tracing","checked":"2026-10-19","quote":"You can view the log in the console in the developer tools of your browser."}]}},"framing_by_ecosystem":{"btp":{"description":"On BTP logging is where the lines go rather than how they are written: [SAP Application Logging service](artifact:btp-application-logging) collects an application's output from Cloud Foundry or Kyma into a searchable Kibana."},"abap":{"description":"On the ABAP door logging code mostly wraps the application log in an object-oriented API, as [abap-log](https://github.com/fabianlupa/abap-log) by [Fabian Lupa](actor:fabianlupa) does among other targets. The rest write elsewhere: a function module's parameters to a table of their own, or entries to Fluentd, Graylog or Loki outside the system."},"ui5":{"description":"In a UI5 app the running code is in the user's browser, so what it logs lands in that browser's console. The framework and the application write to one client-side log, and the question on this door is what reaches a developer who is not at that browser."}},"drafted_with_ai":true},"sap_delivery":{"door":"cap","all":{"built_in":[{"ref":"artifact:cap-java-cds-services-bom","name":"com.sap.cds:cds-services-bom","json":"/artifacts/cap-java-cds-services-bom.json"}],"documented_pattern":[],"announced":[],"packages":[{"ref":"artifact:cap-js-audit-logging","name":"@cap-js/audit-logging","json":"/artifacts/cap-js-audit-logging.json"}]},"by_flavor":{"node":{"built_in":[],"documented_pattern":[],"announced":[],"packages":[{"ref":"artifact:cap-js-audit-logging","name":"@cap-js/audit-logging","json":"/artifacts/cap-js-audit-logging.json"}]},"java":{"built_in":[{"ref":"artifact:cap-java-cds-services-bom","name":"com.sap.cds:cds-services-bom","json":"/artifacts/cap-java-cds-services-bom.json"}],"documented_pattern":[],"announced":[],"packages":[]}}},"edges":{"use_cases":[],"shared_tasks":[],"related_tasks":[],"options":[{"ref":"artifact:cap-js-audit-logging","name":"@cap-js/audit-logging","json":"/artifacts/cap-js-audit-logging.json","ecosystem":"cap","origin_ring":"sap-official"},{"ref":"artifact:openui5-core","name":"@openui5/sap.ui.core","json":"/artifacts/openui5-core.json","ecosystem":"ui5","origin_ring":"sap-official"},{"ref":"artifact:saptools-cf-logs","name":"@saptools/cf-logs","json":"/artifacts/saptools-cf-logs.json","ecosystem":"btp","origin_ring":"independent"},{"ref":"artifact:saptools-cf-tail","name":"@saptools/cf-tail","json":"/artifacts/saptools-cf-tail.json","ecosystem":"btp","origin_ring":"independent"},{"ref":"artifact:franzreitmayer-abap-logging","name":"ABAP_LOGGING","json":"/artifacts/franzreitmayer-abap-logging.json","ecosystem":"abap","origin_ring":"independent"},{"ref":"artifact:greltel-abap-cloud-logger","name":"abap-cloud-logger","json":"/artifacts/greltel-abap-cloud-logger.json","ecosystem":"abap","origin_ring":"independent"},{"ref":"artifact:pacroy-abap-fluentd","name":"abap-fluentd","json":"/artifacts/pacroy-abap-fluentd.json","ecosystem":"abap","origin_ring":"independent"},{"ref":"artifact:hhelibeb-abap-fm-logger","name":"abap-fm-logger","json":"/artifacts/hhelibeb-abap-fm-logger.json","ecosystem":"abap","origin_ring":"independent"},{"ref":"artifact:fabianlupa-abap-log","name":"abap-log","json":"/artifacts/fabianlupa-abap-log.json","ecosystem":"abap","origin_ring":"independent"},{"ref":"artifact:abap-observability-tools-abap-log-exporter","name":"abap-log-exporter","json":"/artifacts/abap-observability-tools-abap-log-exporter.json","ecosystem":"abap","origin_ring":"independent"},{"ref":"artifact:abap-logger-abap-logger","name":"ABAP-Logger","json":"/artifacts/abap-logger-abap-logger.json","ecosystem":"abap","origin_ring":"independent"},{"ref":"artifact:xexer-abap-message-logger","name":"abap-message-logger","json":"/artifacts/xexer-abap-message-logger.json","ecosystem":"abap","origin_ring":"independent"},{"ref":"artifact:brandeis-consulting-abap-prc","name":"ABAP-PRC","json":"/artifacts/brandeis-consulting-abap-prc.json","ecosystem":"abap","origin_ring":"independent"},{"ref":"artifact:cap-java-cds-services-bom","name":"com.sap.cds:cds-services-bom","json":"/artifacts/cap-java-cds-services-bom.json","ecosystem":"cap","origin_ring":"sap-official"},{"ref":"artifact:open-abap-open-abap-bal","name":"open-abap-bal","json":"/artifacts/open-abap-open-abap-bal.json","ecosystem":"abap","origin_ring":"community-org"},{"ref":"artifact:mauriciolauffer-openui5-error-collector","name":"openui5-error-collector","json":"/artifacts/mauriciolauffer-openui5-error-collector.json","ecosystem":"ui5","origin_ring":"independent"},{"ref":"artifact:btp-application-logging","name":"SAP Application Logging service for SAP BTP","json":"/artifacts/btp-application-logging.json","ecosystem":"btp","origin_ring":"sap-official"},{"ref":"artifact:btp-cloud-logging","name":"SAP Cloud Logging","json":"/artifacts/btp-cloud-logging.json","ecosystem":"btp","origin_ring":"sap-official"},{"ref":"artifact:schwarzit-sap-usi-logging-api","name":"sap-usi-logging-api","json":"/artifacts/schwarzit-sap-usi-logging-api.json","ecosystem":"abap","origin_ring":"independent"},{"ref":"artifact:srbconsultingteam-srbjslogger","name":"srbjslogger","json":"/artifacts/srbconsultingteam-srbjslogger.json","ecosystem":"ui5","origin_ring":"independent"}],"samples":[{"ref":"artifact:miyasuta-cap-java-snippets","name":"cap-java-snippets","json":"/artifacts/miyasuta-cap-java-snippets.json"},{"ref":"artifact:sap-samples-teched2025-xp265","name":"teched2025-XP265","json":"/artifacts/sap-samples-teched2025-xp265.json"}],"explained_by":[{"ref":"content:capturing-background-job-errors-in-sap-using-the-application-log-slg0-slg1","name":"Capturing Background Job Errors in SAP Using the Application Log (SLG0/SLG1)","json":"/content/capturing-background-job-errors-in-sap-using-the-application-log-slg0-slg1.json"},{"ref":"content:abap-cloud-logger","name":"ABAP Cloud Logger","json":"/content/abap-cloud-logger.json"},{"ref":"content:sap-api-management-sap-cloud-logging","name":"SAP API ManagementのアクセスログをSAP Cloud Loggingで可視化する方法","json":"/content/sap-api-management-sap-cloud-logging.json"},{"ref":"content:migration-journey-from-mulesoft-to-sap-integration-suite-ci","name":"Migration Journey from MuleSoft to SAP Integration Suite (CI)","json":"/content/migration-journey-from-mulesoft-to-sap-integration-suite-ci.json"},{"ref":"content:unleashing-abap-potential-an-introduction-to-extension-libraries-xco","name":"Unleashing ABAP Potential: An introduction to Extension Libraries (XCO)","json":"/content/unleashing-abap-potential-an-introduction-to-extension-libraries-xco.json"},{"ref":"content:from-application-logging-to-cloud-logging-service-innovation-guide","name":"From Application Logging to Cloud Logging: Service Innovation Guide","json":"/content/from-application-logging-to-cloud-logging-service-innovation-guide.json"},{"ref":"content:from-application-logging-to-cloud-logging-service-migration-guide","name":"From Application Logging to Cloud Logging: Service Migration Guide","json":"/content/from-application-logging-to-cloud-logging-service-migration-guide.json"},{"ref":"content:performance-trace-node-js-app-on-btp-with-dynatrace","name":"Performance Trace Node.js App on BTP with Dynatrace","json":"/content/performance-trace-node-js-app-on-btp-with-dynatrace.json"},{"ref":"content:monitoring-cap-container-metrics-with-sap-cloud-logging-service","name":"SAP Cloud Logging Serviceでコンテナメトリクスを監視する","json":"/content/monitoring-cap-container-metrics-with-sap-cloud-logging-service.json"},{"ref":"content:kyma-integration-with-sap-cloud-logging-part-1-introduction-and-shipping-logs","name":"Kyma Integration with SAP Cloud Logging. Part 1: Introduction and shipping Logs","json":"/content/kyma-integration-with-sap-cloud-logging-part-1-introduction-and-shipping-logs.json"},{"ref":"content:migrating-from-application-logging-service-to-cloud-logging","name":"Migrating from Application Logging Service to Cloud Logging","json":"/content/migrating-from-application-logging-service-to-cloud-logging.json"}],"normative_context":[]}}