Debug dell’SDK AEM tramite i registri
Accedendo ai registri dell’SDK dell’AEM, il file Jar per l’avvio rapido locale dell’SDK dell’AEM o gli strumenti Dispatcher possono fornire informazioni chiave sul debug delle applicazioni AEM.
Registri AEM
I registri fungono da strumenti di prima linea per il debug delle applicazioni AEM, ma dipendono dalla registrazione adeguata nell’applicazione AEM implementata. L’Adobe consiglia di mantenere le configurazioni di sviluppo locale e di registrazione di AEM as a Cloud Service Dev il più simile possibile, in quanto normalizza la visibilità del registro negli ambienti quickstart locali dell’SDK dell’AEM e di sviluppo AEM as a Cloud Service, riducendo il raggruppamento e la ridistribuzione della configurazione.
L'Archetipo progetto AEM configura la registrazione a livello DEBUG per i pacchetti Java dell'applicazione AEM per lo sviluppo locale tramite la configurazione OSGi Sling Logger trovata in
ui.apps/src/main/content/jcr_root/apps/example/config/org.apache.sling.commons.log.LogManager.factory.config-example.cfg.json
che accede a error.log
.
Se la registrazione predefinita non è sufficiente per lo sviluppo locale, la registrazione ad hoc può essere configurata tramite la console web locale quickstart del supporto log dell'SDK dell'AEM, all'indirizzo (/system/console/slinglog). Si consiglia tuttavia di non salvare le modifiche ad hoc in modo permanente su Git, a meno che non siano necessarie le stesse configurazioni di registro anche negli ambienti di sviluppo AEM as a Cloud Service. Tieni presente che le modifiche tramite la console Log Support vengono salvate in modo permanente direttamente nell’archivio quickstart locale dell’SDK dell’AEM.
Le istruzioni di registro Java possono essere visualizzate nel file error.log
:
$ ~/aem-sdk/author/crx-quickstart/logs/error.log
Spesso è utile "coda" error.log
che invia il suo output al terminale.
- macOS/Linux
$ tail -f ~/aem-sdk/author/crx-quickstart/logs/error.log
- Windows richiede applicazioni di terze parti o l'utilizzo del comando Get-Content di Powershell.
Registri di Dispatcher
I registri di Dispatcher vengono generati in stdout quando viene richiamato bin/docker_run
, tuttavia i registri possono essere accessibili direttamente con nel Docker contain.
Accesso ai registri nel contenitore Docker dispatcher-tools-access-logs
I registri di Dispatcher possono accedere direttamente nel contenitore Docker in /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
Il <CONTAINER ID>
in docker exec -it <CONTAINER ID> /bin/sh
deve essere sostituito con l'ID contenitore Docker di destinazione elencato dal comando docker ps
.
Copia dei registri Docker nel file system locale dispatcher-tools-copy-logs
I registri di Dispatcher possono essere copiati dal contenitore Docker in /etc/httpd/logs
nel file system locale per l'ispezione utilizzando lo strumento di analisi dei registri preferito. Tieni presente che si tratta di una copia point-in-time e non fornisce aggiornamenti in tempo reale ai registri.
$ 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
Il <CONTAINER_ID>
in docker cp <CONTAINER_ID>:/var/log/apache2 ./
deve essere sostituito con l'ID contenitore Docker di destinazione elencato dal comando docker ps
.