ログのとり方

http://www.chromium.org/for-testers/enable-logging

Chromeでログを取るには以下のコマンドラインを使う

--enable-logging --v=1

  • このコマンドラインによりフルログサポート(INFO, WARNING, ERROR, VERBOSE0 for >=M9)が有効になる。
  • Windowsでのレンダラスタートアップをデバッグしているなら、ヒストグラムログを取ることを薦める。 --vmodule=metrics=2
  • 冗長ログはVERBOSEnラベルとともに表示される。
    • --vmodule はモジュールごとに冗長ログを有効にする。詳細はbase/loggin.h
  • すべてのページロード(新規タブページも)VERBOSE1としてプリントされる。以下例 [28304:28320:265508881314:VERBOSE1:chrome/browser/renderer_host/resource_dispatcher_host.cc(1098)] OnResponseStarted: chrome://newtab/
  • 出力はchrome_debug.logに保存される。これはchromeのユーザデータディレクトリにある。
    • リリースビルドではDefault/の親ディレクトリ。
    • デバッグビルドではバイナリが置かれているディレクトリ(e.g. out\Deubg)。
  • --enable-logging=stderr により出力は標準エラーに出力される(Windowsでは出来ない)。
  • chromeを再起動するたびにログは上書きされる。
  • Windowsでレンダプロセスのログを取るには --no-sandbox が必要。
  • WTF_LOGを見るには、 --blink-platform-log-channels を使う。

注意点

  • 環境変数CHROME_LOG_FILEが設定されると、そのファイルにログファイルが作成される。相対パスの場合はカレントディレクトリからの相対パスになる。
  • テストでchromeを実行するときには以下のパターンを使う。
#include "chrome/common/env_vars.h"
...
// Set the log file path in the environment for the test browser.
std::wstring log_file_path = ...;
SetEnvironmentVariable(env_vars::kLogFileName, log_file_path.c_str());

コマンドラインフラグの指定の仕方

コマンドラインフラグを参照

ログにどのような個人情報が含まれるか

chrome_debug.logをバグレポートに添付する前に個人情報が含まれていないかをチェックすること、例えばオープンしたURLなど。

デバッグログは人間が読めるテキストファイルなので、テキストエディタで開いて見ることができるし、不必要なものは消すこともできる。

定形のログは以下のフォーマットで括弧で括られる。

[process_id:thread_id:ticks_in_microseconds:log_level:file_name(line_number)]

Sawbuck

他の方法として、WindowsではSawbackユーティリティが使える。表示、フィルター、検索などが行える。

Sawbuckをダウンロードし、LogメニューからConfigure Providers...を選択する。以下のようなダイアログが表示される。

ChromeやChrome Frame、そしてセットアッププログラムなどのログレベルを指定して「OK」をクリックする。「Log」メニューから「Capture」を選択するとChromeのログメッセージを見ることができる。Sawbuckはログメッセージのコールトレースを見ることができる。これは特定の問題を見つけるのに役立つ。


Done:2018/07/20 (金) 23:55:05

Page last modified on July 20, 2018, at 11:52 PM
Powered by PmWiki