Depuração do SDK do AEM usando logs

Última atualização em 2024-01-26
  • Criado para:
  • Beginner
    Intermediate
    Developer

Ao acessar os registros do SDK do AEM, o SDK local do AEM do quickstart Jar ou as Ferramentas do Dispatcher podem fornecer informações importantes sobre como depurar aplicativos do AEM.

Logs do AEM

Os registros atuam como linha de frente para depurar aplicativos de AEM, mas dependem do logon adequado no aplicativo AEM implantado. A Adobe recomenda manter as configurações de registro de desenvolvimento local e desenvolvimento as a Cloud Service AEM AEM as a Cloud Service AEM o mais semelhantes possível, pois normaliza a visibilidade do registro nos ambientes de desenvolvimento do SDK local e do, reduzindo as oscilações e a reimplantação da configuração.

A variável Arquétipo de projeto AEM configura o registro no nível DEBUG para os pacotes Java do aplicativo AEM para desenvolvimento local por meio da configuração OSGi do Sling Logger encontrada em

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

que registra na error.log.

Se o registro padrão for insuficiente para o desenvolvimento local, o registro ad hoc poderá ser configurado por meio do console da Web Log Support do SDK AEM, no (/system/console/slinglog), no entanto, não é recomendável que as alterações ad hoc sejam persistentes no Git, a menos que essas mesmas configurações de log também sejam necessárias em ambientes de Desenvolvimento as a Cloud Service AEM. Lembre-se, as alterações feitas por meio do console Log Support persistem diretamente no repositório do SDK do AEM local de início rápido.

As instruções de log Java podem ser visualizadas na variável error.log arquivo:

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

Geralmente, é útil "rastrear" o error.log que transmite sua saída para o terminal.

Logs do Dispatcher

Os logs do Dispatcher são enviados para o stdout quando bin/docker_run é chamado, no entanto, os logs podem ser acessados diretamente com no contêiner Docker.

Acesso a logs no container do Docker

Os logs do Dispatcher podem ser acessados diretamente no contêiner do Docker em /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

A variável <CONTAINER ID> in docker exec -it <CONTAINER ID> /bin/sh deve ser substituída pela ID de CONTÊINER do Docker de destino listada na docker ps comando.

Copiar os logs do Docker para o sistema de arquivos local

Os logs do Dispatcher podem ser copiados do contêiner do Docker em /etc/httpd/logs ao sistema de arquivos local para inspeção usando sua ferramenta favorita de análise de log. Observe que essa é uma cópia point-in-time e não fornece atualizações em tempo real aos 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 cp -L <CONTAINER ID>:/etc/httpd/logs logs
$ cd logs
$ ls
    dispatcher.log          healthcheck_access_log  httpd_access.log        httpd_error.log

A variável <CONTAINER_ID> in docker cp <CONTAINER_ID>:/var/log/apache2 ./ deve ser substituída pela ID de CONTÊINER do Docker de destino listada na docker ps comando.

Nesta página