Fouten opsporen in AEM SDK met behulp van logbestanden

Als u toegang krijgt tot de AEM SDK-logboeken, kunt u met de lokale QuickStart Jar- of Dispatcher Tools van AEM SDK belangrijke inzichten krijgen in het opsporen van fouten in AEM-toepassingen.

AEM Logs

Logs fungeert als frontline voor foutopsporing in AEM-toepassingen, maar is afhankelijk van een adequate aanmelding in de geïmplementeerde AEM-toepassing. Adobe raadt aan om de configuraties voor lokale ontwikkeling en AEM as a Cloud Service Dev-logboekregistratie zo vergelijkbaar mogelijk te houden, aangezien deze de zichtbaarheid van logbestanden in de lokale QuickStart- en AEM as a Cloud Service Dev-omgevingen van AEM SDK normaliseert, waardoor configuratie-tweeling en -herimplementatie worden beperkt.

Het Archetype van het Project van AEMvormt registreren op het niveau DEBUG voor de pakketten van Java van uw toepassing van AEM voor lokale ontwikkeling via de Sling Logger OSGi configuratie die bij wordt gevonden

ui.apps/src/main/content/jcr_root/apps/example/config/org.apache.sling.commons.log.LogManager.factory.config-example.cfg.json

die zich aanmeldt bij de error.log .

Als het standaard registreren voor lokale ontwikkeling ontoereikend is, kan het ad hoc registreren via de lokale het Webconsole van de Steun van het Logboek van AEM SDK, bij (/system/console/slinglog) worden gevormd, nochtans wordt het niet geadviseerd ad hoc veranderingen aan Git worden voortgeduurd tenzij deze zelfde logboekconfiguraties ook op de milieu's van AEM as a Cloud Service Dev nodig zijn. Wijzigingen via de Log Support-console blijven rechtstreeks doorgevoerd in de lokale QuickStart-opslagruimte van AEM SDK.

Java-loginstructies kunnen worden weergegeven in het bestand error.log :

$ ~/aem-sdk/author/crx-quickstart/logs/error.log

Vaak is het handig om de error.log die de uitvoer naar de terminal stroomt, te 'staart'.

Dispatcher-logboeken

Dispatcher-logboeken worden uitgevoerd om te worden stopgezet wanneer bin/docker_run wordt aangeroepen, maar logbestanden kunnen rechtstreeks worden geopend in de Docker-inhoud.

De toegang tot van logboeken in de container van de Dokker dispatcher-tools-access-logs

Dispatcher-logbestanden kunnen rechtstreeks worden geopend in de Docker-container op /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> in docker exec -it <CONTAINER ID> /bin/sh moet met doelDocker worden vervangen CONTAINER identiteitskaart die van het docker ps bevel wordt vermeld.

De Docker-logbestanden worden naar het lokale bestandssysteem gekopieerd dispatcher-tools-copy-logs

Dispatcher-logbestanden kunnen vanuit de Docker-container in /etc/httpd/logs naar het lokale bestandssysteem worden gekopieerd voor inspectie met uw favoriete programma voor logbestandsanalyse. Merk op dat dit een punt-in-tijd exemplaar is, en geen updates in real time aan de logboeken verstrekt.

$ 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> in docker cp <CONTAINER_ID>:/var/log/apache2 ./ moet met doelDocker worden vervangen CONTAINER identiteitskaart die van het docker ps bevel wordt vermeld.

recommendation-more-help
4859a77c-7971-4ac9-8f5c-4260823c6f69