As explained in the storage documentation, the filesystem on AWS Lambda is:
- read-only, except for
- not shared between lambda instances
- not persistent
Because of that application logs should not be stored on disk.
The simplest solution is to push logs to AWS CloudWatch, AWS' service for logs.
To send logs to CloudWatch:
- in a PHP function: write logs to
echofor example) or
- in a HTTP: write logs to
For example with Monolog:
$log = new Logger('name'); $log->pushHandler(new StreamHandler('php://stderr', Logger::WARNING)); $log->warning('This is a warning!');
To read logs, either open the CloudWatch console or use SAM in the CLI:
sam logs --name <function-name> # Tail logs: sam logs --name <function-name> --tail
Advanced use cases
If you have more specific needs you can send logs to other services, for example Logstash, Papertrail, or Loggly.