.. _read_log_files: ************** Read log files ************** The logging behaviour is determined by the value of :ref:`env_docker_logs` inside your ``.env`` file. By default logs are mounted to the host operating system for convenient access. **Table of Contents** .. contents:: :local: Mounted logs ============ By default log files for PHP, the webserver and the MySQL server are mounted to the host system into your Devilbox git directory under ``./log/``. All logs are separated by service version in the following format: ``./log/-/`` The log directory structure would look something like this: .. code-block:: bash host> cd path/to/devilbox host> tree log log/ ├── nginx-stable/ │   ├── nginx-stable/ │   ├── defaultlocalhost-access.log │   ├── defaultlocalhost-error.log │   ├── -access.log # Each project has its own access log │   ├── -error.log # Each project has its own error log ├── mariadb-10.1/ │   ├── error.log │   ├── query.log │   ├── slow.log ├── php-fpm-7.1/ │   ├── php-fpm.access │   ├── php-fpm.error Use your favorite tools to view log files such as ``tail``, ``less``, ``more``, ``cat`` or others. .. important:: Currently logs are only mounted for PHP, HTTPD and MYSQL container. All other services will log to Docker logs. Docker logs =========== You can also change the behaviour where logs are streamed by setting :ref:`env_docker_logs` to ``1`` inside your ``.env`` file. When doing logs are sent to Docker logs. When using this approach, you need to use the ``docker-compose logs`` command to view your log files from within the Devilbox git directory. .. code-block:: bash :emphasize-lines: 2 host> cd path/to/devilbox host> docker-compose logs When you want to continuously watch the log output (such as ``tail -f``), you need to append ``-f`` to the command. .. code-block:: bash :emphasize-lines: 2 host> cd path/to/devilbox host> docker-compose logs -f When you only want to have logs displayed for a single service, you can also append the service name (works with or without ``-f`` as well): .. code-block:: bash :emphasize-lines: 2 host> cd path/to/devilbox host> docker-compose logs php -f .. important:: This currently does not work for the MySQL container, which will always log to file. Checklist ========= 1. You know how to switch between file and Docker logs 2. You know where log files are mounted 3. You know how to access Docker logs