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 AEM ​ vormt 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