| --- |
| title: Event Logging |
| sidebar_position: 9 |
| version: 1 |
| --- |
| |
| # Logging |
| |
| ## Event Logging |
| |
| Superset by default logs special action events in its internal database (DBEventLogger). These logs can be accessed |
| on the UI by navigating to **Security > Action Log**. You can freely customize these logs by |
| implementing your own event log class. |
| **When custom log class is enabled DBEventLogger is disabled and logs |
| stop being populated in UI logs view.** |
| To achieve both, custom log class should extend built-in DBEventLogger log class. |
| |
| Here's an example of a simple JSON-to-stdout class: |
| |
| ```python |
| def log(self, user_id, action, *args, **kwargs): |
| records = kwargs.get('records', list()) |
| dashboard_id = kwargs.get('dashboard_id') |
| slice_id = kwargs.get('slice_id') |
| duration_ms = kwargs.get('duration_ms') |
| referrer = kwargs.get('referrer') |
| |
| for record in records: |
| log = dict( |
| action=action, |
| json=record, |
| dashboard_id=dashboard_id, |
| slice_id=slice_id, |
| duration_ms=duration_ms, |
| referrer=referrer, |
| user_id=user_id |
| ) |
| print(json.dumps(log)) |
| ``` |
| |
| End by updating your config to pass in an instance of the logger you want to use: |
| |
| ``` |
| EVENT_LOGGER = JSONStdOutEventLogger() |
| ``` |
| |
| ## StatsD Logging |
| |
| Superset can be configured to log events to [StatsD](https://github.com/statsd/statsd) |
| if desired. Most endpoints hit are logged as |
| well as key events like query start and end in SQL Lab. |
| |
| To setup StatsD logging, it’s a matter of configuring the logger in your `superset_config.py`. |
| If not already present, you need to ensure that the `statsd`-package is installed in Superset's python environment. |
| |
| ```python |
| from superset.stats_logger import StatsdStatsLogger |
| STATS_LOGGER = StatsdStatsLogger(host='localhost', port=8125, prefix='superset') |
| ``` |
| |
| Note that it’s also possible to implement your own logger by deriving |
| `superset.stats_logger.BaseStatsLogger`. |