Skip to content

Latest commit

 

History

History
82 lines (79 loc) · 6.98 KB

File metadata and controls

82 lines (79 loc) · 6.98 KB
  • どの情報を告知するか

    • ログレベルによるフィルタリング
      • debug・・SQLログ、リクパラ、レスポンスなど䞀番詳现な情報。
      • info・・メ゜ッドの開始、終了など。正垞系の進捗報告など。
      • warning・・ナヌザヌの正垞な動䜜ずしお起こり埗る準異垞系。バリデヌションなどはここ
      • error・・意図したExceptionお起こり埗る゚ラヌ。4XX系。デヌタの䞍敎合などで起こり埗る業務゚ラヌ系。
      • fatal・・意図しないException。500系。通垞起こり埗ない゚ラヌ(DB䞍接続、カラム䞍敎合)
  • 出すべき情報はなにか(情報の内容ず量)

    • 情報が少ないず远えないし、倚すぎるず埋もれおしたう
    • ログに関するTips
      • クラス名、メ゜ッド、行数、時間入れおおくず楜。時間はマスト。
      • 面倒でなければメ゜ッドのInパラメヌタは吐いた方が良い(远跡が楜)
      • ログにだす情報は改行しないほうがいいかも・・。(特にSQL)䞍必芁に改行を入れるず非垞にみにくい
      • 倚くなりすぎなければ正垞系の凊理が終わった埌に぀けるのも良い。
      • ログには蚘号+番号などを入れおおくず怜玢が楜。ログが出た堎所をすぐに特定できるために。
      • HTMLデヌタやパラメヌタが倚すぎるものずきなどは文字制限を入れないずログデヌタ自䜓が倚すぎるこずがあるので必芁に応じお少なくした方が良いかも・・
      • ログに出す詳现情報はInパラメヌタヌ、キヌ系のID情報、゚ラヌメッセヌゞ。
      • ゚ラヌメッセヌゞはstackTraceなどがはっきりず出るこずを確認しおおくこず
      • 共通床が高いメ゜ッドなどはログが倧量に出お他の郚分を邪魔するこずもあるので出し分け芁泚意。
      • 耇数のバッチが入るずきはチャネルを分けるず凊理が混ざらないので芋やすいかも。
      • 集蚈するこずがあるのでキヌ系の情報がはっきりず拟えるようにしおおくこず
  • 情報を拟うサヌビスや連携先

    • 生ログ
      • 比范的小芏暡〜䞭芏暡だったり、レガシヌな珟堎ではいただに生ログを出力しおいるずいうプロゞェクトが倚いのではないでしょうか。 ただそのたた出しおいるだけあっおいろいろなカスタマむズが可胜だったりしたす。
      • メリット
        • 埌述するような蚭蚈スキルや゚ラヌレポヌティングサヌビスぞの知芋が特にいらない
        • 党おの情報を自由自圚に出力するこずができる
      • デメリット
        • レベルにもよるが、膚倧なサむズになり、ログの怜玢が倧倉
        • 䞊蚘のサむズ制限などにより、保存や管理がしにくい -レベル分けや入れる情報を粟査しないず怜玢ができない(ログの蚭蚈胜力がいる)
    • 収集サヌビス(Cloudwatch、LogAnalyticsなど)
      • ログを抜出しお、怜玢できるようにした各皮のサヌビス。SQLに近いような怜玢ロゞックが぀かえるこずもありたす。
      • メリット
        • さたざたな怜玢ク゚リなどを぀かうこずができ、生ログよりも目的の情報を探しやすい
        • 実ログを吐き出しおいるだけなので、カスタマむズがしやすい
      • デメリット
        • サヌビスの孊習コスト、慣れや怜玢ク゚リを芚える手間が若干必芁
        • 生ログをはいおいるだけなので、ログ蚭蚈指針をしっかりしおおかないず怜玢が倧倉
    • ゚ラヌレポヌティングサヌビス(Sentryなど)
      • ログを芋る機䌚は特に゚ラヌ時に集䞭しおいるため、゚ラヌ発生時に告知するようなサヌビス(それゆえSlackやメヌルなどの告知ず連携しおいるこずも倚い)
      • メリット
        • ゚ラヌの堎合のみ、レポヌトが送られおくるので、ログよりは芋る情報が必然的に少なくお枈む
        • 情報が现かくカテゎラむズされおおり、怜玢や抜出が容易
      • デメリット
        • ゚ラヌが吐かれない異垞の堎合、動きを远えない
        • 構築の段階でどの゚ラヌハンドリングをもれなくサヌビスに連携させる蚭蚈が必芁
        • 党おの情報が芋れるわけではないので、ある皋床掚枬が必芁な郚分がでおくる
  • ゚ラヌ時に告知する情報の切り分け

    • 環境が䜕か
      • 開発・・詳现な蚘録たで残す(debug)
      • 本番・・䞀定以䞊の゚ラヌのみ(error)
    • 察象が誰か
      • 䞀般ナヌザヌ
        • stackTraceなどの现かい情報は秘匿性の芳点からみせない。
        • 芋せる情報は「その情報で䜕が原因かがわかるこず」(䟋:圚庫が䞍足しおいたす。)
        • 問い合わせる際に、どのような゚ラヌだったかをわかるように゚ラヌコヌドが぀いおいるず怜玢が容易。
      • システム管理者
        • なるべく詳现な゚ラヌ情報が残すべし。
        • できるだけその゚ラヌだけで必芁な情報がわかるず尚よい(リクパラなどの再珟に必芁な情報)
  • ゚ラヌ報告時に必芁な情報

    • バグ管理ツヌルなどに蚘茉する必芁があるため、なるべく詳现な情報を茉せる必芁がある。
      • 時間
      • 再珟動䜜(スクショや動画)
      • キヌずなる情報(䌝祚番号、䜜業者)
      • リク゚ストパラメヌタ(入力情報)
      • その他特定床の高いデヌタ、特異床の高い情報
  • HTTPステヌタスコヌド

    • 200・・䞀般的なリク゚スト成功
    • 201・・リ゜ヌスが䜜成された堎合の成功(200で代甚するこずもあるかず思いたす。)
    • 400(422)・・リク゚スト䞍正。バリデヌションなどリク゚ストパラメヌタ䞍正の堎合などが䞀般的。
      • 400:リク゚スト自䜓が無効。(jsonが壊れおいるなど)
      • 422:䞀般的なバリデヌション゚ラヌ
    • 401・・認蚌゚ラヌ。䞻にBasic認蚌などAPIに到達たでにNGになるパタヌン。
    • 403・・リク゚ストによる操䜜暩限がない(蚱可されおいない)ずきに぀かわれる。 認蚌(401)ず認可(403)の違いに泚意
      • 認蚌・・そもそもナヌザヌずしおログむンできないなど、ナヌザヌ自䜓の確認などに䜿われる
      • 認可・・特定動䜜の暩限があるかないかのケヌスで䜿われる
    • 404・・NotFound。リ゜ヌスがない。
    • 500・・異垞