Metabase 日志

Metabase 默认会记录大量信息。Metabase 内部使用 Log4j 2,因此您可以配置 Metabase 记录的信息量。

查看和下载 Metabase 日志

您可以在 管理设置 > 工具 > 日志 中找到 Metabase 日志。您可以按关键字(例如“同步”)过滤日志,并将其下载为文本文件。

如果您正在运行自托管 Metabase,您还可以在终端中查看日志。

如何阅读 Metabase 日志

请参阅 如何阅读日志

配置日志级别

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,可以使用环境变量 JAVA_OPTS=-Dlog4j.configurationFile=file:/path/to/custom/log4j2.xml 将 Metabase 指向您的自定义日志文件。
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 日志

您可以将 Metabase 的 Web 服务器日志级别设置为 DEBUG,以在日志中提供更多详细信息。请记住,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 的文档。

这有帮助吗?

感谢您的反馈!
想改进这些文档吗?提出更改。
© . This site is unofficial and not affiliated with Metabase, Inc.