Felsöka AEM SDK med hjälp av loggar
Via loggarna för AEM SDK kan du få information om hur du felsöker AEM program, antingen AEM SDK Local quickstart Jar eller Dispatcher Tools.
AEM loggar
Loggar fungerar som en frontlinje för felsökning AEM program, men är beroende av korrekt inloggning i det distribuerade AEM. 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:s lokala snabbstartsmiljö och AEM as a Cloud Service Dev-miljöer, vilket minskar behovet av konfigurationssvängningar och omdistribution.
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:s 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:s lokala snabbstartdatabas.
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
.