如何查找 Firefox 的日志?

Flo*_*ont 6 debugging firefox

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

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

  ...
  LOG(("restarting transaction @%p\n", this));
  mTunnelProvider = nullptr;
  ...
Run Code Online (Sandbox Code Playgroud)

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

Flo*_*ont 6

对于文件nsHttpConnection.cpp,函数是HttpLog.hLOG()中定义的宏。

这是摘录:

#define LOG1(args) \
  MOZ_LOG(mozilla::net::gHttpLog, mozilla::LogLevel::Error, args)
Run Code Online (Sandbox Code Playgroud)

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

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

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

set MOZ_LOG=nsHttp:5
set MOZ_LOG_FILE=http.log
firefox
Run Code Online (Sandbox Code Playgroud)

或使用命令行参数运行 Firefox:

firefox -MOZ_LOG=nsHttp:5 -MOZ_LOG_FILE=nsHttp.log
Run Code Online (Sandbox Code Playgroud)

这将启用详细级别信息(及更高级别)并将所有输出放入文件中nsHttp.log。

该MOZ_LOG变量由 as <module>:组成level。

您还可以使用更通用的模块all来包含它们。

即记录文件中的所有错误级别信息all.log:

firefox -MOZ_LOG=all:1 -MOZ_LOG_FILE=all.log
Run Code Online (Sandbox Code Playgroud)

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