日志记录
事件日志
Superset 默认情况下在其内部数据库 (DBEventLogger) 中记录特殊操作事件。可以通过导航到 **安全 > 操作日志** 在 UI 上访问这些日志。您可以通过实现自己的事件日志类来自由定制这些日志。**启用自定义日志类时,将禁用 DBEventLogger,并且日志将不再填充到 UI 日志视图中。** 要同时实现两者,自定义日志类应该扩展内置的 DBEventLogger 日志类。
以下是一个简单的 JSON 到 stdout 类的示例
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))
最后,更新您的配置以传入要使用的日志记录器的实例
EVENT_LOGGER = JSONStdOutEventLogger()
StatsD 日志记录
如果需要,Superset 可以配置为将事件记录到 StatsD。大多数命中的端点以及 SQL Lab 中的关键事件(如查询开始和结束)都会被记录。
要设置 StatsD 日志记录,只需在您的 superset_config.py
中配置日志记录器即可。
from superset.stats_logger import StatsdStatsLogger
STATS_LOGGER = StatsdStatsLogger(host='localhost', port=8125, prefix='superset')
请注意,也可以通过派生 superset.stats_logger.BaseStatsLogger
来实现您自己的日志记录器。