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 指向自定义日志配置文件。

  1. 复制一份默认的 log4j2.xml 文件
  2. 根据您的需求进行调整。

    您可以为应用程序的不同区域设置不同的日志级别,例如:

<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>
  1. 停止您的 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 版本的文档。

© . All rights reserved.