tslog؛ یه لاگر تایپاسکریپتی برای همهٔ رانتایمها
خلاصهٔ کاملتر
مستندات رسمی tslog اون رو یه لاگر سریع و رسا برای تایپاسکریپت و جاوااسکریپت معرفی میکنه. ادعای اصلیش جهانیبودنه: یه ایمپورت واحد روی Node.js، مرورگر، Deno، Bun، ورکرها و React Native کار میکنه، خودش رانتایم رو تشخیص میده، و هیچ وابستگی رانتایمی به باندل تو اضافه نمیکنه.
وقتی type رو تعیین نکنی، خروجی همهجا حالت خوانا (pretty) میمونه و فقط رنگها محیطآگاهن: روی ترمینال تعاملی رنگی، و موقع پایپ یا ریدایرکت و تو CI بدون کدهای رنگ ANSI، تا چیزی وارد فایل لاگ نشه. خروجی ساختاریافته یه انتخاب آگاهانه برای پروداکشنه و با type: "json" یا متغیر محیطی TSLOG_TYPE روشن میشه؛ ساختارش هم تخته: پیام و سطح و زمان بالا، فیلدهای خودت کنارشون، و متادیتای رانتایم زیر _logMeta.
یکی از قابلیتهای جالبش برگردوندن موقعیت خطا به سورس اصلیه. وقتی خطایی از کد ترنسپایلشده یا باندلشده لاگ میشه، tslog سورسمپ همون فایل رو میخونه و مسیر و شمارهٔ خط رو به فایل .ts خودت برمیگردونه — همون کاری که دواتولز مرورگر انجام میده ولی نود فقط با فلگ مخصوص و Bun اصلاً انجامش نمیده. این کار بیرون از پروداکشن خودکاره و با TSLOG_SOURCE_MAPS هم دستی روشن یا خاموش میشه.
برای پروداکشن، ماسککردن مقادیر حساس داخل خود کتابخونهست: بر اساس نام کلید، مسیر، یا الگوی regex؛ و بهجای جایگزین ثابت میتونی یه توکن هششده بذاری تا همون مقدار رو بین لاگها دنبال کنی بدون اینکه خودش جایی ذخیره شه. سابلاگرها تنظیمات و فیلدهای ثابت والد رو به ارث میبرن، و ترنسپورتهای فایل، HTTP، رینگبافر و ورکرترد بهشکل سابپثهای tree-shakeable عرضه شدن.
کنارش چند بیلد جدا هم داره: tslog/slim برای باندلهای حساس به حجم (حدود ۹.۸ کیلوبایت gzip در برابر ۲۰.۷)، tslog/lite برای دیباگ تو مرورگر با شمارهٔ خط درست، و tslog/testing برای اسرتزدن روی رکوردها بدون شلوغکردن کنسول. پریستهای pino و OpenTelemetry و GenAI هم اجازه میدن لاگها مستقیم وارد ابزارهای موجود بشن — و تیم سازنده لاگگیری اپهای هوش مصنوعی و ایجنتها رو یه کاربرد درجهیک برای این کتابخونه میدونه.
نکات کلیدی:
- یه لاگر برای Node.js، مرورگر، Deno، Bun، ورکرها و React Native با صفر وابستگی
- خروجی خوانا بهصورت پیشفرض، رنگها محیطآگاه، JSON تخت بهصورت اختیاری
- برگردوندن مسیر و شمارهٔ خط خطا به سورس اصلی از راه سورسمپ
- ماسککردن رمز و دادههای حساس با کلید، مسیر، regex یا توکن هششده
- ترنسپورت فایل/HTTP/ورکر و پریستهای pino و OpenTelemetry و GenAI




