1b1b4d261SWilliam A. Kennington III# OpenBMC logging 2388b58f9SPatrick Williams 3388b58f9SPatrick Williams- Provides a mechanism for logging events and errors to the journal. 4388b58f9SPatrick Williams- Creates error entry D-Bus objects when an error is reported/committed. 5388b58f9SPatrick Williams- Persists error entries across power off. 6b1b4d261SWilliam A. Kennington III 7b1b4d261SWilliam A. Kennington III## Error definitions 8388b58f9SPatrick Williams 9b1b4d261SWilliam A. Kennington III### Generic error definitions 10388b58f9SPatrick Williams 11388b58f9SPatrick Williams- Generic errors used by applications are defined at 12388b58f9SPatrick Williams [phosphor-dbus-interfaces][phosphor-dbus-interfaces]. 13388b58f9SPatrick Williams- Generic errors can be used by all the applications by including the generated 14b1b4d261SWilliam A. Kennington III elog-errors.hpp header file. 15b1b4d261SWilliam A. Kennington III 16388b58f9SPatrick Williams[phosphor-dbus-interfaces]: https://github.com/openbmc/phosphor-dbus-interfaces 17388b58f9SPatrick Williams 18b1b4d261SWilliam A. Kennington III### Application error definitions 19388b58f9SPatrick Williams 20388b58f9SPatrick Williams- There are errors that are not generic and are very specific to the 21b1b4d261SWilliam A. Kennington III application. Such errors are defined in the application that uses the error. 22388b58f9SPatrick Williams- Refer to [openpower-debug-collector][openpower-debug-collector]. 23388b58f9SPatrick Williams 24*a1347418SPatrick Williams[openpower-debug-collector]: 25*a1347418SPatrick Williams https://github.com/openbmc/openpower-debug-collector 26b1b4d261SWilliam A. Kennington III 27b1b4d261SWilliam A. Kennington III### Error YAML files 28388b58f9SPatrick Williams 29388b58f9SPatrick Williams- Every error defined will have an error YAML file and a corresponding error 30b1b4d261SWilliam A. Kennington III metadata YAML file. 31388b58f9SPatrick Williams- The error YAML file contains the error name and a one-line description of the 32*a1347418SPatrick Williams error. An example of an error YAML file can be found [here][error-example]. 33*a1347418SPatrick Williams- The error metadata YAML file captures required data. The format of the data is 34*a1347418SPatrick Williams defined in the error metadata file. An example of an error metadata YAML file 35*a1347418SPatrick Williams can be found [here][metadata-example]. 36388b58f9SPatrick Williams 37*a1347418SPatrick Williams[error-example]: 38*a1347418SPatrick Williams https://github.com/openbmc/phosphor-dbus-interfaces/blob/master/yaml/xyz/openbmc_project/Common/File.errors.yaml 39*a1347418SPatrick Williams[metadata-example]: 40*a1347418SPatrick Williams https://github.com/openbmc/phosphor-dbus-interfaces/blob/master/yaml/xyz/openbmc_project/Common/File.metadata.yaml 41b1b4d261SWilliam A. Kennington III 42b1b4d261SWilliam A. Kennington III## Logging to journal 43388b58f9SPatrick Williams 44*a1347418SPatrick Williams- Applications can log debug/error information to the journal using the **log** 45*a1347418SPatrick Williams API 46388b58f9SPatrick Williams - Refer to [log.hpp][log-header]. 47388b58f9SPatrick Williams- Applications can commit errors to the journal using the **report** or 48b1b4d261SWilliam A. Kennington III **commit** API 49388b58f9SPatrick Williams - Refer to [elog.hpp][elog-header]. 50b1b4d261SWilliam A. Kennington III - Logging entry D-Bus objects are created for the committed errors. 51b1b4d261SWilliam A. Kennington III 52*a1347418SPatrick Williams[log-header]: 53*a1347418SPatrick Williams https://github.com/openbmc/phosphor-logging/blob/master/lib/include/phosphor-logging/log.hpp 54*a1347418SPatrick Williams[elog-header]: 55*a1347418SPatrick Williams https://github.com/openbmc/phosphor-logging/blob/master/lib/include/phosphor-logging/elog.hpp 56b1b4d261SWilliam A. Kennington III 57388b58f9SPatrick Williams## Delete All interface 58388b58f9SPatrick Williams 59388b58f9SPatrick Williams- Use the [DeleteAll.interface.yaml][deleteall] for deleting all the logging 60388b58f9SPatrick Williams entries. 61388b58f9SPatrick Williams 62*a1347418SPatrick Williams[deleteall]: 63*a1347418SPatrick Williams https://github.com/openbmc/phosphor-dbus-interfaces/blob/master/yaml/xyz/openbmc_project/Collection/DeleteAll.interface.yaml 64b1b4d261SWilliam A. Kennington III 65b1b4d261SWilliam A. Kennington III## REST commands 66388b58f9SPatrick Williams 67b1b4d261SWilliam A. Kennington III### Logging in 68388b58f9SPatrick Williams 69388b58f9SPatrick Williams- Before you can do anything, you need to first login. 70388b58f9SPatrick Williams 71388b58f9SPatrick Williams```sh 72388b58f9SPatrick Williamsexport bmc=xx.xx.xx.xx 73388b58f9SPatrick Williamscurl -c cjar -b cjar -k -H "Content-Type: application/json" -X POST \ 74388b58f9SPatrick Williams -d '{"data": [ "root", "<root-password>" ] }' \ 75388b58f9SPatrick Williams https://{$bmc}/login 76b1b4d261SWilliam A. Kennington III``` 77b1b4d261SWilliam A. Kennington III 78b1b4d261SWilliam A. Kennington III### List logging child objects recursively 79388b58f9SPatrick Williams 80388b58f9SPatrick Williams```sh 81388b58f9SPatrick Williamscurl -c cjar -b cjar -k https://${bmc}/xyz/openbmc_project/logging/list 82b1b4d261SWilliam A. Kennington III``` 83b1b4d261SWilliam A. Kennington III 84b1b4d261SWilliam A. Kennington III### List logging attributes of child objects recursively 85388b58f9SPatrick Williams 86388b58f9SPatrick Williams```sh 87388b58f9SPatrick Williamscurl -c cjar -b cjar -s -k -H "Content-Type: application/json" -X GET \ 88388b58f9SPatrick Williams -d '{"data" : []}' \ 89388b58f9SPatrick Williams https://${bmc}/xyz/openbmc_project/logging/enumerate 90b1b4d261SWilliam A. Kennington III``` 91b1b4d261SWilliam A. Kennington III 92b1b4d261SWilliam A. Kennington III### Delete logging entries 93388b58f9SPatrick Williams 94388b58f9SPatrick Williams```sh 95388b58f9SPatrick Williamscurl -c cjar -b cjar -k -H "Content-Type: application/json" -X POST \ 96388b58f9SPatrick Williams -d '{"data": []}' \ 97388b58f9SPatrick Williams https://${bmc}/xyz/openbmc_project/logging/entry/<entry-num>/action/Delete 98b1b4d261SWilliam A. Kennington III``` 99b1b4d261SWilliam A. Kennington III 100b1b4d261SWilliam A. Kennington III### Delete all logging entries 101388b58f9SPatrick Williams 102388b58f9SPatrick Williams```sh 103388b58f9SPatrick Williamscurl -c cjar -b cjar -k -H "Content-Type: application/json" -X POST \ 104388b58f9SPatrick Williams -d "{\"data\": [] }" \ 105388b58f9SPatrick Williams https://${bmc}/xyz/openbmc_project/logging/action/DeleteAll 106b1b4d261SWilliam A. Kennington III``` 107