跳到主内容

日志记录

事件日志

Superset 默认将其内部数据库 (DBEventLogger) 中的特殊操作事件记录到日志。这些日志可以在 UI 中通过导航到 安全 > 操作日志 来访问。您可以通过实现自己的事件日志类来自定义这些日志。当启用自定义日志类时,DBEventLogger 将被禁用,并且日志将不再填充到 UI 日志视图中。为了同时实现两者,自定义日志类应扩展内置的 DBEventLogger 日志类。

这是一个简单的 JSON 到标准输出类的示例

    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 来实现您自己的日志记录器。