GAE アプリのログ解析をする場合、Stackdriver logging からログを取り出す必要あり。gcloud コマンドで簡単にできる。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# log のリストを取得 | |
$ gcloud logging logs list | |
NAME | |
projects/<project名>/logs/appengine.googleapis.com%2Frequest_log | |
# GAEのlogを取得する; 取得して見やすくする | |
$ gcloud logging read 'resource.type=gae_app AND \ | |
logName=projects/<プロジェクト名>/logs/appengine.googleapis.com%2Frequest_log AND \ | |
severity>=INFO' --limit 1 --format json | python -m json.tool | |
[ | |
{ | |
"httpRequest": { | |
"status": 200 | |
# GAEのlogを取得する; フィルター付き | |
# 結果の加工まで含めた処理 | |
# timestamp の文字列を変数にするには、dt=`date --rfc-3339=s --date="1 days ago"|tr ' ' 'T'` | |
# で、変数にして timestamp>="'"${dt}"'" で指定する | |
$ gcloud logging read 'resource.type=gae_app AND \ | |
logName=projects/<project名>/logs/appengine.googleapis.com%2Frequest_log AND \ | |
timestamp>="2018-06-29T23:39:34+00:00" AND \ #logの期間を設定 | |
severity>=INFO AND \ | |
"品番が見つかりません"' \ #ログ内の日本語や文字列でフィルターしたければ、””で囲むだけ | |
--limit 10 \ # 検索結果の表示上限を指定 | |
--format json | \ | |
jq ".[].protoPayload.<parse tag>" | \ # 結果をjq に渡して、パース | |
sed -e '/<行頭文字>/d' | \ # 不要な行を削除 | |
awk '{print $4}' | \ # スペース区切りの 4列目を取得 | |
sed -e s/,//g > test.log # 不要文字(この場合はコンマ)を削除して、test.logへ出力 |
0 件のコメント:
コメントを投稿