Skip to main content
Edit this page on GitHub

日志记录

事件日志记录

Superset 默认会在其内部数据库(DBEventLogger)中记录特殊操作事件。这些日志可以通过导航到 安全 > 操作日志 在用户界面中访问。您可以自由地通过实现自己的事件日志类来自定义这些日志。 当启用自定义日志类时,DBEventLogger 将被禁用,并且日志将停止在用户界面日志视图中填充。 为了同时实现两者,自定义日志类应扩展内置的 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 来实现您自己的日志记录器。