Metabase 日志
Metabase 默认会记录大量信息。Metabase 在底层使用 [Log4j 2][https://logging.apache.ac.cn/log4j/2.x/],因此您可以配置 Metabase 记录信息的详细程度。
查看和下载 Metabase 日志
您可以在 管理设置 > 故障排除 > 日志 中找到 Metabase 日志。您可以通过关键词(例如,“sync”)筛选日志,并将其下载为文本文件。
如果您运行的是自托管 Metabase,您还可以在终端中查看日志。
如何阅读 Metabase 日志
请参阅 [如何阅读日志][../troubleshooting-guide/server-logs.md]。
配置日志级别
Metabase 使用 log4j进行日志配置。以下是 Metabase 的 默认日志配置。某些故障排除任务可能需要您覆盖此日志配置(例如,查看更多错误详情)。有关 日志级别的信息,请参阅 Log4j 的文档。
临时覆盖日志配置
要临时调整日志配置,请前往 管理设置 > 故障排除 > 日志 ,然后点击 自定义日志级别。
您可以从常见故障排除任务的预设日志级别(例如,排除同步问题故障)中选择,或者以 JSON 格式提供您自己的配置。例如,以下是一个覆盖配置,用于增加关联过滤器故障排除的日志记录。
{
"metabase.parameters.chain-filter": "debug",
"metabase.parameters.chain-filter.dedupe-joins": "debug"
}
管理设置中的覆盖将是临时的。您可以选择覆盖生效的时长(例如,60 分钟)。当覆盖超时后,日志配置将恢复为默认日志配置(如果您使用的是 自定义日志文件)。
使用自定义日志配置文件
您可以将 Metabase 指向自定义日志配置文件。
- 复制一份默认的
log4j2.xml
文件 -
根据您的需求进行调整。
您可以为应用程序的不同区域设置不同的日志级别,例如:
<Loggers>
<Logger name="metabase" level="INFO"/>
<Logger name="metabase-enterprise" level="INFO"/>
<Logger name="metabase.plugins" level="DEBUG"/>
<Logger name="metabase.server.middleware" level="DEBUG"/>
<Logger name="com.mchange" level="ERROR"/>
<!-- Example: Add trace logging to the Metabase analysis process, which can help debugging trouble with syncing, fingerprinting and scanning -->
<Logger name="metabase.sync" level="TRACE"/>
<Root level="WARN">
<AppenderRef ref="STDOUT"/>
</Root>
</Loggers>
- 停止您的 Metabase,然后使用自定义日志配置文件重新启动。
- 如果您在 Docker 中运行 Metabase,您可以使用环境变量将 Metabase 指向您的自定义日志文件,例如:
JAVA_OPTS=-Dlog4j.configurationFile=file:/path/to/custom/log4j2.xml
docker run -p 3000:3000 -v $PWD/my_log4j2.xml:/tmp/my_log4j2.xml -e JAVA_OPTS=-Dlog4j.configurationFile=file:/tmp/my_log4j2.xml metabase/metabase`
- 如果您将 Metabase 作为 JAR 文件运行,您可以传递
-Dlog4j.configurationFile
参数。例如,如果您的自定义 XML 文件位于/path/to/custom/log4j2.xml
,您可以这样使用它
java -Dlog4j.configurationFile=file:/path/to/custom/log4j2.xml -jar metabase.jar
配置 Jetty 日志
您可以通过将日志级别设置为 DEBUG
,来配置 Metabase 的 Web 服务器在日志中提供更多详细信息。请记住,Jetty 的调试日志可能会非常冗长,这使得查找所需数据变得困难。
要获取 Jetty 日志,请将以下行添加到 Log4J2 XML 文件中的
<Logger name="org.eclipse.jetty" level="DEBUG"/>
配置日志显示方式
关闭日志中的表情符号
默认情况下,Metabase 会在日志中包含表情符号,例如:
2025-06-10 21:43:00,243 INFO sync.analyze :: classify-tables Analyzed [*****************************************·········] 😊 84% Table 6 ''PUBLIC.ACCOUNTS'' {mb-quartz-job-type=SyncAndAnalyzeDatabase}
2025-06-10 21:43:00,244 INFO sync.analyze :: classify-tables Analyzed [***********************************************···] 😎 96% Table 2 ''PUBLIC.ORDERS'' {mb-quartz-job-type=SyncAndAnalyzeDatabase}
您可以使用 MB_EMOJI_IN_LOGS
环境变量来禁用表情符号
export MB_EMOJI_IN_LOGS="false"
java --add-opens java.base/java.nio=ALL-UNNAMED -jar metabase.jar
关闭彩色日志
默认情况下,Metabase 在显示日志时会使用颜色(包括在管理 日志 和终端中)。您可以使用 MB_COLORIZE_LOGS
环境变量来禁用彩色日志。
阅读其他 Metabase 版本的文档。