1*758e9fbaSOystein Eftevaag# Compile time log levels 2*758e9fbaSOystein Eftevaag 3*758e9fbaSOystein EftevaagAt compile time the maximum log level can be specified. This allows distros to 4*758e9fbaSOystein Eftevaagdisable the overhead code and reduce overall code size. 5*758e9fbaSOystein Eftevaag 6*758e9fbaSOystein Eftevaag# Runtime log level 7*758e9fbaSOystein Eftevaag 8*758e9fbaSOystein EftevaagAt runtime, the log level is determined by an environment variable. The default 9*758e9fbaSOystein Eftevaaglog level is WARNING. The level can be changed by setting the TSS2_LOG 10*758e9fbaSOystein Eftevaagenvironment variable. 11*758e9fbaSOystein Eftevaag 12*758e9fbaSOystein EftevaagPossible levels are: NONE, ERROR, WARNING, INFO, DEBUG, TRACE 13*758e9fbaSOystein Eftevaag 14*758e9fbaSOystein EftevaagThe level can be set for all module using the `all` module name or individually 15*758e9fbaSOystein Eftevaagper module. The environment variable is evaluated left to right. 16*758e9fbaSOystein Eftevaag 17*758e9fbaSOystein EftevaagExample: `TSS2_LOG=all+ERROR,marshal+TRACE,tcti+DEBUG` 18*758e9fbaSOystein Eftevaag 19*758e9fbaSOystein Eftevaag# Implementation 20*758e9fbaSOystein Eftevaag 21*758e9fbaSOystein EftevaagEach source code file specifies its corresponding module before including log.h. 22*758e9fbaSOystein Eftevaag``` 23*758e9fbaSOystein Eftevaag#define LOGMODULE tcti 24*758e9fbaSOystein Eftevaag#include "log.h" 25*758e9fbaSOystein Eftevaag``` 26*758e9fbaSOystein EftevaagOptionally, the default log-level for this module can be set: 27*758e9fbaSOystein Eftevaag``` 28*758e9fbaSOystein Eftevaag#define LOGMODULE tcti 29*758e9fbaSOystein Eftevaag#define LOGDEFAULT ERROR 30*758e9fbaSOystein Eftevaag#include "log.h" 31*758e9fbaSOystein Eftevaag``` 32