

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# ライブラリロギングマクロの実装
<a name="afr-library-logging-macros"></a>

FreeRTOS ライブラリは、以下のロギングマクロを使用します。これらは詳細度の高い順にリストされています。
+ `LogError`
+ `LogWarn`
+ `LogInfo`
+ `LogDebug`

すべてのマクロの定義を提供する必要があります。推奨事項は以下のとおりです。
+ マクロは `C89` スタイルのロギングをサポートする必要があります。
+ ロギングはスレッドセーフにする必要があります。複数のタスクからのログ行が相互にインターリーブしてはなりません。
+ ロギング API によってブロックが発生してはなりません。アプリケーションタスクが I/O によってブロックされないようにする必要があります。

実装の詳細については、FreeRTOS.org の「[Logging Functionality](https://www.freertos.org/logging.html)」を参照してください。この[例](https://github.com/FreeRTOS/lab-iot-reference-nxp-rt1060/tree/main/examples/common/logging)で実装を確認できます。

## テスト
<a name="testing-logging"></a>
+ 複数のタスクを含むテストを実行して、ログがインターリーブしないことを確認します。
+ テストを実行して、ロギング API が I/O によってブロックしていないことを確認します。
+ `C89,C99` スタイルのロギングなど、さまざまな標準でロギングマクロをテストします。
+ `Debug`、`Info`、`Error`、`Warning` など、さまざまなログレベルを設定してロギングマクロをテストします。