# Device Event Log This directory contains code for logging device and system events. ## Usage Use device event log macros to record events without contributing to noise in the chrome log. * Events are stored in a circular buffer (current limit is 4000). * Events can be viewed at chrome://device-log. Events can be filtered by type and level. * Events show up in **feedback reports** under `device_event_log`. * Network events are separated out into a `network_event_log` section. * **ERROR** events will also be logged to the main chrome log. * All events can be logged to the main chrome log using vlog: `--vmodule=device_event_log*=1` The events can also be queried for viewing in other informational pages, e.g: ``` device_event_log::GetAsString(device_event_log::OLDEST_FIRST, "json", "bluetooth", device_event_log::LOG_LEVEL_DEBUG, 1000); ``` ## Examples Typical usage: ```NET_LOG(EVENT) << "NetworkState Changed " << name << ": " << state;``` ```POWER_LOG(USER) << "Suspend requested";``` ```POWER_LOG(DEBUG) << "Sending suspend request to dbus object: " << path;``` ```BLUETOOTH_LOG(ERROR) << "Unrecognized DBus error " << error_name;``` Advanced usage: ``` device_event_log::LogLevel log_level = SuppressError(dbus_error_message) ? device_event_log::LOG_LEVEL_DEBUG : device_event_log::LOG_LEVEL_ERROR; DEVICE_LOG(device_event_log::LOG_TYPE_NETWORK, log_level) << detail; ``` ``` USB_PLOG(DEBUG) << "Failed to set configuration " << configuration_value; ```