# Compile time log levels

At compile time the maximum log level can be specified. This allows distros to
disable the overhead code and reduce overall code size.

# Runtime log level

At runtime, the log level is determined by an environment variable. The default
log level is WARNING. The level can be changed by setting the TSS2_LOG
environment variable.

Possible levels are: NONE, ERROR, WARNING, INFO, DEBUG, TRACE

The level can be set for all module using the `all` module name or individually
per module. The environment variable is evaluated left to right.

Example: `TSS2_LOG=all+ERROR,marshal+TRACE,tcti+DEBUG`

# Implementation

Each source code file specifies its corresponding module before including log.h.
```
#define LOGMODULE tcti
#include "log.h"
```
Optionally, the default log-level for this module can be set:
```
#define LOGMODULE tcti
#define LOGDEFAULT ERROR
#include "log.h"
```