xref: /openbmc/phosphor-dbus-interfaces/yaml/xyz/openbmc_project/Logging/README.md (revision a1347418307d31a94bd21f22897aa508df938dcf)
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