Depuración de AEM SDK mediante registros
- Se aplica a:
- Experience Manager as a Cloud Service
Creado para:
- Principiante
- Intermedio
- Desarrollador
Al acceder a los registros de AEM SDK, tanto el Jar de inicio rápido local de AEM SDK como las herramientas de Dispatcher pueden proporcionar perspectivas clave en la depuración de aplicaciones de AEM.
Registros de AEM
Los registros actúan como primera línea para depurar aplicaciones de AEM, pero dependen del registro adecuado en la aplicación de AEM implementada. Adobe recomienda mantener las configuraciones de desarrollo local y registro de desarrollo de AEM as a Cloud Service lo más similares posible, ya que normaliza la visibilidad del registro en los entornos de inicio rápido local y desarrollo de AEM as a Cloud Service de AEM SDK, lo que reduce la alternancia y la reimplementación de la configuración.
El tipo de archivo del proyecto de AEM configura el registro en el nivel DEBUG para los paquetes Java de la aplicación AEM para el desarrollo local mediante la configuración OSGi del registrador de Sling que se encuentra en
ui.apps/src/main/content/jcr_root/apps/example/config/org.apache.sling.commons.log.LogManager.factory.config-example.cfg.json
que registra a error.log
.
Si el registro predeterminado no es suficiente para el desarrollo local, se puede configurar el registro ad hoc a través de la consola web de soporte de registros de Quickstart local de AEM SDK, en (/system/console/slinglog); sin embargo, no se recomienda que se mantengan los cambios ad hoc en Git a menos que también se necesiten estas mismas configuraciones de registro en los entornos de desarrollo de AEM as a Cloud Service. Tenga en cuenta que los cambios a través de la consola de Log Support se mantienen directamente en el repositorio de inicio rápido local de AEM SDK.
Las instrucciones de registro de Java se pueden ver en el archivo error.log
:
$ ~/aem-sdk/author/crx-quickstart/logs/error.log
A menudo resulta útil "rastrear" al error.log
que transmite su salida al terminal.
- macOS/Linux
$ tail -f ~/aem-sdk/author/crx-quickstart/logs/error.log
- Windows requiere aplicaciones de cola de terceros o el uso del comando Get-Content de Powershell.
Registros de Dispatcher
Los registros de Dispatcher se muestran en stdout cuando se invoca bin/docker_run
, pero se puede acceder directamente a los registros con en el contenedor Docker.
Acceder a los registros del contenedor Docker
Se puede acceder directamente a los registros de Dispatcher en el contenedor Docker en /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
El <CONTAINER ID>
de docker exec -it <CONTAINER ID> /bin/sh
debe reemplazarse con el ID. de contenedor de Docker de destino indicado en el comando docker ps
.
Copiar los registros de Docker al sistema de archivos local
Los registros de Dispatcher se pueden copiar del contenedor Docker en /etc/httpd/logs
al sistema de archivos local para inspeccionarlos con su herramienta de análisis de registros favorita. Tenga en cuenta que se trata de una copia puntual y no proporciona actualizaciones en tiempo real de los registros.
$ 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
El <CONTAINER_ID>
de docker cp <CONTAINER_ID>:/var/log/apache2 ./
debe reemplazarse con el ID. de contenedor de Docker de destino indicado en el comando docker ps
.