.. _logs:

====
Logs
====


- Every single job run log is stored on OpenStack Swift object storage.
- Each single job log file provides unique URL which can be accessed to see log
  details
- These URLs are available on all ApiMon levels:

  - In Zulip alarm messages
  - In Alerta events
  - In Grafana Dashboards

- Logs are simple plain text files of the whole playbook output::

    2020-07-12 05:54:04.661170 | TASK [List Servers]
    2020-07-12 05:54:09.050491 | localhost | ok
    2020-07-12 05:54:09.067582 | TASK [Create Server in default AZ]
    2020-07-12 05:54:46.055650 | localhost | MODULE FAILURE:
    2020-07-12 05:54:46.055873 | localhost | Traceback (most recent call last):
    2020-07-12 05:54:46.057441 | localhost |
    2020-07-12 05:54:46.057499 | localhost | During handling of the above exception, another exception occurred:
    2020-07-12 05:54:46.057535 | localhost |
    …
    2020-07-12 05:54:46.063992 | localhost |  File "/tmp/ansible_os_server_payload_uz1c7_iw/ansible_os_server_payload.zip/ansible/modules/cloud/openstack/os_server.py", line 500, in _create_server
    2020-07-12 05:54:46.065152 | localhost |  return self._send_request(
    2020-07-12 05:54:46.065186 | localhost |  File "/root/.local/lib/python3.8/site-packages/keystoneauth1/session.py", line 1020, in _send_request
    2020-07-12 05:54:46.065334 | localhost |  raise exceptions.ConnectFailure(msg)
    2020-07-12 05:54:46.065378 | localhost | keystoneauth1.exceptions.connection.ConnectFailure: Unable to establish connection to https://ims.eu-de.otctest.t-systems.com/v2/images: ('Connection aborted.', OSError(107, 'Transport endpoint is not connected'))
    2020-07-12 05:54:46.295035 |
    2020-07-12 05:54:46.295241 | TASK [Delete server]
    2020-07-12 05:54:48.481374 | localhost | ok
    2020-07-12 05:54:48.505761 |
    2020-07-12 05:54:48.505906 | TASK [Delete SecurityGroup]
    2020-07-12 05:54:50.727174 | localhost | changed
    2020-07-12 05:54:50.745541 |


For further details how to work with logs please refer to
:ref:`How To Read The Logs And Understand The Issue <working_with_logs>` FAQ
page.

