Felsöka AEM SDK med hjälp av loggar
Via loggarna för AEM SDK kan du antingen använda AEM SDK lokala snabbstart Jar eller Dispatcher Tools för att få viktiga insikter i felsökningen av AEM-program.
AEM Logs
Loggar fungerar som en frontlinje för felsökning av AEM-program, men är beroende av korrekt inloggning i det distribuerade AEM-programmet. Adobe rekommenderar att konfigurationerna för lokal utveckling och AEM as a Cloud Service Dev-loggning är så lika som möjligt, eftersom det normaliserar loggsynligheten i AEM SDK lokala snabbstartsmiljö och AEM as a Cloud Service Dev-miljöer, vilket minskar behovet av konfigurationssvängningar och ominstallation.
AEM Project Archetype konfigurerar loggning på DEBUG-nivå för ditt AEM-programs Java-paket för lokal utveckling via Sling Logger OSGi-konfigurationen som finns på
ui.apps/src/main/content/jcr_root/apps/example/config/org.apache.sling.commons.log.LogManager.factory.config-example.cfg.json
som loggar till error.log
.
Om standardloggningen inte är tillräcklig för lokal utveckling kan ad hoc-loggning konfigureras via AEM SDK lokala snabbstartswebbkonsol, på (/system/console/slinglog), men det rekommenderas inte att ad hoc-ändringar sparas i Git om inte samma loggkonfigurationer behövs även i AEM as a Cloud Service Dev-miljöer. Tänk på att ändringar via loggsupportkonsolen sparas direkt i AEM SDK databas.
Java-loggsatser kan visas i filen error.log
:
$ ~/aem-sdk/author/crx-quickstart/logs/error.log
Det är ofta användbart att "svansa" error.log
som direktuppspelar utdata till terminalen.
- macOS/Linux
$ tail -f ~/aem-sdk/author/crx-quickstart/logs/error.log
- Windows kräver program från tredje part eller PowerShell-kommandot Get-Content.
Dispatcher loggar
Dispatcher-loggar skickas ut för att stoppas när bin/docker_run
anropas, men loggar kan nås direkt med i Docker.
Åtkomst till loggar i Docker-behållaren dispatcher-tools-access-logs
Dispatcher-loggar kan komma åt direkt i Docker-behållaren på /etc/httpd/logs
.
$ docker ps
# locate the CONTAINER ID associated with "adobe/aem-ethos/dispatcher-publisher" IMAGE
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
46127c9d7081 adobe/aem-ethos/dispatcher-publish:2.0.23 "/docker_entrypoint.…" 6 seconds ago Up 5 seconds 0.0.0.0:8080->80/tcp wonderful_merkle
$ docker exec -it <CONTAINER ID> /bin/sh
/ #
/ # cd /etc/httpd/logs
/ # ls
dispatcher.log healthcheck_access_log httpd_access.log httpd_error.log
# When finished viewing the logs files, exit the Docker container's shell
/# exit
<CONTAINER ID>
i docker exec -it <CONTAINER ID> /bin/sh
måste ersättas med det Docker CONTAINER ID som anges från kommandot docker ps
.
Kopiera Docker-loggarna till det lokala filsystemet dispatcher-tools-copy-logs
Dispatcher-loggar kan kopieras ut från Docker-behållaren på /etc/httpd/logs
till det lokala filsystemet för kontroll med ditt favoritlogganalysverktyg. Observera att detta är en kopia som skickas vid en viss tidpunkt och inte innehåller realtidsuppdateringar av loggarna.
$ docker ps
# locate the CONTAINER ID associated with "adobe/aem-ethos/dispatcher-publisher" IMAGE
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
46127c9d7081 adobe/aem-ethos/dispatcher-publish:2.0.23 "/docker_entrypoint.…" 6 seconds ago Up 5 seconds 0.0.0.0:8080->80/tcp wonderful_merkle
$ docker cp -L <CONTAINER ID>:/etc/httpd/logs logs
$ cd logs
$ ls
dispatcher.log healthcheck_access_log httpd_access.log httpd_error.log
<CONTAINER_ID>
i docker cp <CONTAINER_ID>:/var/log/apache2 ./
måste ersättas med det Docker CONTAINER ID som anges från kommandot docker ps
.