su-its / ams-backend

:briefcase: (This repository is no longer maintained) The backend server of our Access-management-system.
MIT License
0 stars 0 forks source link

アクセスログを表示するようにした #88

Closed equal-l2 closed 3 years ago

equal-l2 commented 3 years ago

morganを使ってアクセスログを表示するようにしました。 形式はmorgan標準のcombinedに、時刻を日本時間で表示する改造を加えただけのものです。

ログの例(ローカルホストからの接続なので変なIPアドレスになってます):

::ffff:172.19.0.1 - - [2021-03-27T10:31:46.177Z] "GET /v1/users_in_room HTTP/1.1" 304 - "http://localhost:3001/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:87.0) Gecko/20100101 Firefox/87.0"
::ffff:172.19.0.1 - - [2021-03-27T10:31:57.980Z] "GET /v1/access_logs?page=1&per_page=undefined HTTP/1.1" 304 - "http://localhost:3001/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:87.0) Gecko/20100101 Firefox/87.0"
::ffff:172.19.0.1 - - [2021-03-27T10:32:16.698Z] "GET / HTTP/1.1" 200 37 "-" "curl/7.64.1"
::ffff:172.19.0.1 - - [2021-03-27T10:32:40.404Z] "GET /v1/access_logs/bulk HTTP/1.1" 200 24035 "-" "curl/7.64.1"
h-takeyeah commented 3 years ago

@equal-l2 アクセスログはアクセスログで別ファイルにとかは厳しいですか?

equal-l2 commented 3 years ago

可能です。

h-takeyeah commented 3 years ago

例えばサーバープログラムの代表格であるapacheはaccess.logというファイルをアクセスログのみを記録するファイルとして吐き出します.

標準出力(およびpm2のams-backend-out.log)に吐き出される他の情報とこのアクセスログの情報を,そこまで積極的に分離しなければいけない理由はありません.あくまで,apacheがこうなので倣えるなら倣ってはどうかという提案です.

h-takeyeah commented 3 years ago

可能です。

では,ams-backend/log/を生成してそこにアクセスログを吐き出すように設定してもらえますか?(.gitignoreにlogも追加お願いします)

equal-l2 commented 3 years ago

@h-takeyeah やりました。

equal-l2 commented 3 years ago

なんかpm2で動かすとうまくいってない感じがします。 調査してみます……

equal-l2 commented 3 years ago

あー、npm run startで動かすとdist以下にできちゃうのか……

h-takeyeah commented 3 years ago

そこはprocess.cwd()とかで何とかなりませんかね

equal-l2 commented 3 years ago

そんなにうまく行かなそうですね…… https://gist.github.com/uupaa/da42698d6b2d2cbb3cca

どこで実行しようが変わらないように絶対パスで指定していいなら楽ですが……

equal-l2 commented 3 years ago

なんかcwdとか__dirnameとか抜きでフォルダ名だけを指定したら行けました(謎)

equal-l2 commented 3 years ago

設定にlogPathという新項目を生やしました。 これで出力先のフォルダを自在に操作できます。

h-takeyeah commented 3 years ago

ちょっと試してOKそうならマージします

h-takeyeah commented 3 years ago

@equal-l2 上の方のコメントはrequest changeでコメントするべきでした

h-takeyeah commented 3 years ago

@equal-l2 きちんと確認していなかったのですが,最初に自分が提案したams-backend/logsというログ出力先フォルダの位置については何か意見はないですか?もし言われたままそうしたのだとすると悪いなと思ったので.

だからといってここ以外に妥当な場所も思いつかないんですけども.

equal-l2 commented 3 years ago

強いて言えば~/.local/shareとかに出力するという手がなくもないですが、特に現状でも問題ないと思います。