# Gvrlog

Gvrlog is a generalized design that collects and analyzes data from the
registers of power managers (CPLDs and Power Sequencers) and voltage regulators
(VRs) sensors via PMBus, supporting multiple scenarios.

# API Usage

```bash
log_tool --config ${cfgDirPath} --log ${logDirPath} --type ${logType} --name ${specificName}

# Examples:
log_tool -c configs/power_rail_configs_example/ -l logs/power_rail -t power_rail -n P12V
log_tool -c configs/voltage_regulator_configs_example/ \
-l logs/voltage_regulator -t voltage_regulator -n P1V07_BMC
```

```bash
max34451_logger --config ${cfgDirPath} --log ${logDirPath} --details

# Example:
max34451_logger -c configs/power_rail_configs_example/max34451 -l logs/max34451 -d
```

For more details, please refer to the
[Onboarding Document](go/gvrlog-onboarding-doc).
