- Meaning of log levels:
- error - unexpected error and the program could not continue as usual
- warn - unexpected situation but the program can continue running
- debug - small volume of logging, proportional to the number of objects created.
- trace - larger volume of logging, in special flows during runtime
- req - UCP requests
- data - dumps every packet sent / received
- General:
- use small letters
- avoid using '=': "device %s" instead of "device=%s" - to allow selecting the value using double-click from the terminal, and searching for it in text editors.
- print flags using characters, for example: "%c%c", (flag1 ? '1' : '-'), (flag2 ? '2' : '-')
- Errors:
- print %m (system error code) for every system call error message
- print error message in the first place the error is detected.
- print the exact cause of the error and not the assumed reason, because the assumption may not be true on all systems / in the future.
- IB:
- print LID as integer ("lid %d")
- print QP numbers as hex number ("qp 0x%x")