我如何找到 Firefox 的日志?

How do I find the logs of Firefox?

在浏览 Firefox 源代码时,我看到有很多日志。我想在运行时找到它们以帮助我理解和调试某些东西。

例如,查看 nsHttpConnection.cpp 时,我可以找到以下内容:

  ...
  LOG(("restarting transaction @%p\n", this));
  mTunnelProvider = nullptr;
  ...

LOG 行去哪儿了?如何找到包含 Firefox 生成的所有日志的日志文件?

以文件为例nsHttpConnection.cpp, the LOG() functions are macros defined in HttpLog.h.

这是一段摘录:

#define LOG1(args) \
  MOZ_LOG(mozilla::net::gHttpLog, mozilla::LogLevel::Error, args)

您可以将它们视为更完整 MOZ_LOG 功能的快捷方式。

  • LOG1() -> 错误
  • LOG2() -> 警告
  • LOG3() -> 信息
  • LOG() = LOG4() -> 调试
  • LOG5() -> 详细

如果你想获取nsHttp模块的日志,你可以设置2个环境变量,然后运行 firefox :

set MOZ_LOG=nsHttp:5
set MOZ_LOG_FILE=http.log
firefox

或运行 firefox 命令行参数:

firefox -MOZ_LOG=nsHttp:5 -MOZ_LOG_FILE=nsHttp.log

这会启用详细级别信息(和更高级别)并将所有输出放在文件 nsHttp.log.

MOZ_LOG变量由<module>:level.

组成

您还可以使用更通用的模块 all 将它们全部包含在内。

即在文件 all.log:

中记录所有错误级别信息
firefox -MOZ_LOG=all:1 -MOZ_LOG_FILE=all.log

有关MOZ_LOG变量如何配置的更多信息,您可以查看prlog.h