Damit die Logs schön formatiert aus einer Symfony 4 Anwendung in AWS Cloudwatch ankommen, muss man Monolog folgendermaßen konfigurieren:
# config/services.yaml Monolog\Formatter\JsonFormatter: calls: - [includeStacktraces]
und
# config/packages/prod/monolog.yaml monolog: handlers: main: type: stream level: error path: '%kernel.logs_dir%/error.log' formatter: Monolog\Formatter\JsonFormatter
Danach muss man der Cloudwatch Daemon konfigurieren:
# /etc/awslogs/awslogs.conf
[general] # Path to the CloudWatch Logs agent's state file. The agent uses this file to maintain # client side state across its executions. state_file = /var/lib/awslogs/agent-state [/var/www/html/var/log/error.prod.log] datetime_format = [%Y-%m-%d H:%M:%S] file = /var/www/html/var/log/error.log buffer_duration = 5000 log_stream_name = {instance_id} initial_position = start_of_file log_group_name = test_group_name/error_log
und man erhält wunderbare (aggregierte) ErrorLog Informationen in Cloudwatch Logs Insight: