ロギング
CLI はロギングのために swift-log インターフェースを採用しています。 パッケージはロギングの実装の詳細を抽象化し、CLIがロギングバックエンドに依存しないようにします。 ロガーは swift-service-context を使用して依存性を注入されており、どこからでもアクセスできます:
bash
ServiceContext.current?.logger
NOTE
swift-service-context
は、 Dispatch
を使用して値を伝播しない task locals を使用してインスタンスを渡します。 ですから、Dispatch
を使用して非同期コードを実行する場合、コンテキストからインスタンスを取得し、非同期処理に渡すことになります。
記録する内容
ログはCLIのUIではありません。 ログは発生した問題を診断するためのツールです。 したがって、あなたが提供する情報が多いほど、より良いです。 新しい機能を構築するときは、予期せぬ動作に遭遇する開発者の立場になって、 どんな情報が役に立つか考えください。 適切なlog levelを使用することを徹底しましょう。 そうしないと、開発者は不要な情報をフィルターすることができなくなってしまいます。