LogTape 0.9.0 リリース:同期設定APIとランタイム互換性の向上
LogTape 0.9.0のリリースを発表できることを嬉しく思います!このバージョンでは、さまざまなJavaScript環境での柔軟性を高めながら、一般的なユースケースでの設定を簡素化する重要な改善が含まれています。
新機能
同期設定API:セットアップの簡素化
同期バージョンの設定関数が追加されました:
-
configureSync()
:LogTapeを同期的に設定 -
disposeSync()
:LogTapeリソースを同期的に破棄 -
resetSync()
:LogTape設定を同期的にリセット
これらの関数は、非同期操作が不要なシナリオ向けに、よりシンプルなAPIを提供します。プロミスを待つ必要なく、より直感的なコードが書けるようになりました。ただし、これらの関数はストリームシンクなど、非同期破棄を必要とするシンクやフィルターでは使用できない点に注意してください。ほとんどの一般的なログ設定では問題なく動作します。
import { configureSync, getConsoleSink } from "@logtape/logtape";
configureSync({
sinks: {
console: getConsoleSink(),
},
loggers: [
{
category: "my-app",
lowestLevel: "info",
sinks: ["console"],
},
],
});
コンソールシンクの機能強化
-
ConsoleSinkOptions.levelMap
オプションが追加され、ログレベルがコンソールメソッドにどのようにマッピングされるかをカスタマイズできるようになりました
破壊的変更
ファイルシンクが別パッケージに移動:クロスプラットフォームサポートの向上
ランタイム互換性を向上させるため、ファイル関連のシンクは@logtape/file
パッケージに移動されました:
-
getFileSink()
関数を@logtape/file
パッケージに移動 -
FileSinkOptions
インターフェースを@logtape/file
パッケージに移動 -
getRotatingFileSink()
関数を@logtape/file
パッケージに移動 -
RotatingFileSinkOptions
インターフェースを@logtape/file
パッケージに移動
この構造的変更により、コアの@logtape/logtape
パッケージはファイルシステム依存関係を導入することなく、ブラウザやエッジ関数を含むすべてのJavaScriptランタイムと完全に互換性を持つようになりました。これにより、以前はファイルシステムのインポートに問題があったWebpack、Rollup、Viteなどのバンドラーとの互換性が向上します。
移行ガイド
ファイルシンクを使用していた場合は、インポートを更新してください:
// 以前
import { getFileSink, getRotatingFileSink } from "@logtape/logtape";
// 変更後
import { getFileSink, getRotatingFileSink } from "@logtape/file";
新しいパッケージのインストールを忘れないでください:
# npm, pnpm, Yarn, Bun の場合
npm add @logtape/file
# Deno の場合
deno add jsr:@logtape/file
今後の展望
このリリースは、LogTapeをJavaScriptとTypeScriptアプリケーション向けの最も柔軟で開発者フレンドリーなロギングソリューションにするという私たちの継続的な取り組みを表しています。JavaScript生態系全体での互換性拡大とパフォーマンス向上を続けていきます。
貢献者
このリリースへの貴重な貢献をしてくださったMurph Murphy氏に特に感謝いたします。
いつものように、皆様のフィードバックと貢献を歓迎します!GitHubリポジトリで問題や改善提案を気軽にお寄せください。
快適なロギングライフを!
Discussion