文件AEMAEM 教學課程AEM as a Cloud Service 教學課程

使用記錄檔為AEM SDK除錯

Last update: Mon Mar 24 2025 00:00:00 GMT+0000 (Coordinated Universal Time)
  • 適用對象:
  • Experience Manager as a Cloud Service
  • 主題:
  • 開發人員工具

建立對象:

  • 初學者
  • 中繼
  • 開發人員

存取AEM SDK的記錄檔(AEM SDK本機Quickstart Jar或Dispatcher Tools)可提供AEM應用程式偵錯的重要深入分析。

AEM記錄檔

video poster

https://video.tv.adobe.com/v/34334?quality=12&learn=on

記錄檔是AEM應用程式偵錯作業的最前線,但部署的AEM應用程式必須有充足的登入次數。 Adobe建議儘可能保持本機開發和AEM as a Cloud Service開發記錄設定,因為它標準化AEM SDK本機Quickstart和AEM as a Cloud Service開發環境的記錄可見度,減少設定迂迴和重新部署。

AEM專案原型會透過Sling Logger OSGi設定,為您AEM應用程式的Java套件設定DEBUG層級的記錄,以進行本機開發,該設定可在

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

哪些專案記錄到error.log。

如果預設記錄不足以供本機開發使用,則可透過AEM SDK的本機Quickstart的「記錄支援」網頁主控台(/system/console/slinglog)來設定臨機記錄。不過,不建議將臨機記錄變更儲存至Git,除非AEM as a Cloud Service Dev環境也需要這些相同的記錄設定。 請記住,透過記錄支援主控台進行的變更會直接儲存至AEM SDK的本機Quickstart存放庫。

可在error.log檔案中檢視Java記錄陳述式:

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

通常「追蹤」將輸出串流到終端機的error.log會很有用。

  • macOS/Linux
    • $ tail -f ~/aem-sdk/author/crx-quickstart/logs/error.log
  • Windows需要第三方尾部應用程式或使用Powershell的Get-Content命令。

Dispatcher記錄

叫用bin/docker_run時,Dispatcher記錄會輸出到stdout,不過記錄可以在Docker包含中直接存取。

存取Docker容器中的日誌

Dispatcher記錄檔可以直接存取/etc/httpd/logs的Docker容器。

$ 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

docker exec -it <CONTAINER ID> /bin/sh中的<CONTAINER ID>必須取代為docker ps命令所列出的目標Docker容器識別碼。

將Docker日誌複製到本機檔案系統

可以使用您最喜愛的記錄分析工具,將Dispatcher記錄從位於/etc/httpd/logs的Docker容器複製到本機檔案系統以進行檢查。 請注意,這是時間點副本,不會提供記錄的即時更新。

$ 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

docker cp <CONTAINER_ID>:/var/log/apache2 ./中的<CONTAINER_ID>必須取代為docker ps命令所列出的目標Docker容器識別碼。

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