ログ記録
Mastraのログ記録システムは、関数の実行、入力データ、出力レスポンスを構造化された形式でキャプチャします。
Mastra Cloudにデプロイする際、ログはログページに表示されます。セルフホストまたはカスタム環境では、設定されたトランスポートに応じて、ログをファイルや外部サービスに送信できます。
PinoLogger
CLIを使用して新しいMastraプロジェクトを初期化する際、PinoLogger
はデフォルトで含まれています。
src/mastra/index.ts
import { Mastra } from '@mastra/core/mastra';
import { PinoLogger } from '@mastra/loggers';
export const mastra = new Mastra({
// ...
logger: new PinoLogger({
name: 'Mastra',
level: 'info',
}),
});
利用可能なすべての設定オプションについては、PinoLogger APIリファレンスを参照してください。
ワークフローとツールからのログ出力
Mastraは、ワークフローステップとツールの両方で利用可能なmastra.getLogger()
メソッドを通じてロガーインスタンスへのアクセスを提供します。ロガーは標準的な重要度レベル:debug
、info
、warn
、error
をサポートしています。
ワークフローステップからのログ出力
ワークフローステップ内では、execute
関数内のmastra
パラメータを通じてロガーにアクセスします。これにより、ステップの実行に関連するメッセージをログ出力できます。
src/mastra/workflows/test-workflow.ts
import { createWorkflow, createStep } from "@mastra/core/workflows";
import { z } from "zod";
const step1 = createStep({
//...
execute: async ({ mastra }) => {
const logger = mastra.getLogger();
logger.info("ワークフロー情報ログ");
return {
output: ""
};
}
});
export const testWorkflow = createWorkflow({...})
.then(step1)
.commit();
ツールからのログ出力
同様に、ツールもmastra
パラメータを通じてロガーインスタンスにアクセスできます。これを使用して、実行中のツール固有のアクティビティをログ出力します。
src/mastra/tools/test-tool.ts
import { createTool } from "@mastra/core/tools";
import { z } from "zod";
export const testTool = createTool({
// ...
execute: async ({ mastra }) => {
const logger = mastra?.getLogger();
logger?.info("ツール情報ログ");
return {
output: ""
};
}
});
追加データを使用したログ記録
ログメソッドは、追加データのためのオプションの第二引数を受け取ります。これは、オブジェクト、文字列、数値など、任意の値を指定できます。
この例では、ログメッセージにagent
キーとtestAgent
インスタンスの値を持つオブジェクトが含まれています。
src/mastra/workflows/test-workflow.ts
import { createWorkflow, createStep } from "@mastra/core/workflows";
import { z } from "zod";
const step1 = createStep({
//...
execute: async ({ mastra }) => {
const testAgent = mastra.getAgent("testAgent");
const logger = mastra.getLogger();
logger.info("workflow info log", { agent: testAgent });
return {
output: ""
};
}
});
export const testWorkflow = createWorkflow({...})
.then(step1)
.commit();