logologo
スタート
マニュアル
開発
プラグイン
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
スタート
マニュアル
開発
プラグイン
API
logologo

ロギング

サーバーログ、監査ログ、変更履歴
Next Pageサーバーログ、監査ログ、変更履歴
TIP

このドキュメントはAIによって翻訳されました。不正確な情報については、英語版をご参照ください

#pkg: '@nocobase/plugin-logger'

#ロギング

This feature is provided by the plugin «ロガー»

#はじめに

ログは、システムの問題を特定する上で重要な手段です。NocoBaseのサーバーログは、主にインターフェースリクエストログとシステム稼働ログで構成されており、ログレベル、ローリングポリシー、サイズ、出力形式などの設定をサポートしています。このドキュメントでは、NocoBaseのサーバーログに関する内容と、ログプラグインが提供するサーバーログのパッケージ化およびダウンロード機能の利用方法について説明します。

#ログ設定

ログレベル、出力方法、出力形式など、ログに関するパラメータは、環境変数 を通じて設定できます。

#ログ形式

NocoBaseは、4種類の異なるログ形式の設定をサポートしています。

#console

開発環境でのデフォルト形式です。メッセージはハイライトカラーで表示されます。

2023-12-30 22:40:06 [info]  response                                     method=GET path=/api/uiSchemas:getJsonSchema/nocobase-admin-menu res={"status":200} action={"actionName":"getJsonSchema","resourceName":"uiSchemas","params":{"filterByTk":"nocobase-admin-menu","resourceName":"uiSchemas","resourceIndex":"nocobase-admin-menu","actionName":"getJsonSchema"}} userId=1 status=200 cost=5 app=main reqId=ccf4e3bd-beb0-4350-af6e-b1fc1d9b6c3f
2023-12-30 22:43:12 [debug] Database dialect: mysql                      module=application method=install app=main reqId=31ffa8b5-f377-456b-a295-0c8a28938228
2023-12-30 22:43:12 [warn]  app is installed                             module=application method=install app=main reqId=31ffa8b5-f377-456b-a295-0c8a28938228

#json

本番環境でのデフォルト形式です。

{
  "level": "info",
  "timestamp": "2023-12-26 22:04:56",
  "reqId": "7612ef42-58e8-4c35-bac2-2e6c9d8ec96e",
  "message": "response",
  "method": "POST",
  "path": "/api/authenticators:publicList",
  "res": { "status": 200 },
  "action": {
    "actionName": "publicList",
    "resourceName": "authenticators",
    "params": { "resourceName": "authenticators", "actionName": "publicList" }
  },
  "status": 200,
  "cost": 16
}

#logfmt

https://brandur.org/logfmt.

level=info timestamp=2023-12-21 14:18:02 reqId=8b59a40d-68ee-4c97-8001-71a47a92805a
message=response method=POST path=/api/authenticators:publicList res={"status":200}
action={"actionName":"publicList","resourceName":"authenticators","params":{"resourceName":"authenticators","actionName":"publicList"}}
userId=undefined status=200 cost=14

#delimiter

区切り文字 | で区切られます。

info|2023-12-26 22:07:09|13cd16f0-1568-418d-ac37-6771ee650e14|response|POST|/api/authenticators:publicList|{"status":200}|{"actionName":"publicList","resourceName":"authenticators","params":{"resourceName":"authenticators","actionName":"publicList"}}||200|25

#ログディレクトリ

NocoBaseのログファイルの主なディレクトリ構造は以下の通りです。

  • storage/logs - ログ出力ディレクトリ
    • main - メインアプリケーション名
      • request_YYYY-MM-DD.log - リクエストログ
      • system_YYYY-MM-DD.log - システムログ
      • system_error_YYYY-MM-DD.log - システムエラーログ
      • sql_YYYY-MM-DD.log - SQL実行ログ
      • ...
    • sub-app - サブアプリケーション名
      • request_YYYY-MM-DD.log
      • ...

#ログファイル

#リクエストログ

request_YYYY-MM-DD.log は、インターフェースのリクエストおよびレスポンスログです。

フィールド説明
levelログレベル
timestampログ出力時刻 YYYY-MM-DD hh:mm:ss
messagerequest または response
userIdresponse にのみ存在
methodリクエストメソッド
pathリクエストパス
req / resリクエスト/レスポンスの内容
actionリクエストされたリソースとパラメータ
statusレスポンスステータスコード
costリクエスト処理時間
app現在のアプリケーション名
reqIdリクエストID
ヒント

reqId は X-Request-Id レスポンスヘッダーを通じてフロントエンドに渡されます。

#システムログ

system_YYYY-MM-DD.log は、アプリケーション、ミドルウェア、プラグインなどのシステム稼働ログです。error レベルのログは system_error_YYYY-MM-DD.log に個別に記録されます。

フィールド説明
levelログレベル
timestampログ出力時刻 YYYY-MM-DD hh:mm:ss
messageログメッセージ
moduleモジュール
submoduleサブモジュール
method呼び出されたメソッド
metaその他の関連情報 (JSON形式)
app現在のアプリケーション名
reqIdリクエストID

#SQL実行ログ

sql_YYYY-MM-DD.log は、データベースのSQL実行ログです。INSERT INTO ステートメントは、最初の2000文字のみが保持されます。

フィールド説明
levelログレベル
timestampログ出力時刻 YYYY-MM-DD hh:mm:ss
sqlSQLステートメント
app現在のアプリケーション名
reqIdリクエストID

#ログのパッケージ化とダウンロード

  1. ログ管理ページに移動します。
  2. ダウンロードしたいログファイルを選択します。
  3. ダウンロードボタンをクリックします。

2024-04-10_10-50-50

#関連ドキュメント

  • プラグイン開発 - サーバーサイド - ロギング
  • APIリファレンス - @nocobase/logger