เครื่องมือบันทึกที่ npm ใช้
คนตัดไม้นี้มีพื้นฐานมาก มันทำการบันทึกเป็นเวลา npm รองรับระดับที่กำหนดเองและเอาต์พุตสี
ตามค่าเริ่มต้น บันทึกจะถูกเขียนไปที่ stderr หากคุณต้องการส่งข้อความบันทึกไปยังเอาต์พุตอื่นที่ไม่ใช่สตรีม คุณสามารถเปลี่ยนสมาชิก log.stream
หรือคุณสามารถฟังเหตุการณ์ที่ปล่อยออกมา และทำทุกอย่างที่คุณต้องการกับเหตุการณ์เหล่านั้น
npm install npmlog --save
var log = require ( 'npmlog' )
// additional stuff ---------------------------+
// message ----------+ |
// prefix ----+ | |
// level -+ | | |
// v v v v
log . info ( 'fyi' , 'I have a kitty cat: %j' , myKittyCat )
ระดับที่จะแสดงบันทึกที่ บันทึกใดๆ ที่ระดับนี้หรือสูงกว่านี้จะปรากฏขึ้น silent
ระดับพิเศษจะป้องกันไม่ให้สิ่งใดปรากฏขึ้นเลย
อาร์เรย์ของข้อความบันทึกทั้งหมดที่ป้อน
จำนวนบันทึกสูงสุดที่จะเก็บ หาก log.record มีขนาดใหญ่กว่า 10% ของค่านี้ ระบบจะลดขนาดลงเหลือ 90% ของค่านี้
สาเหตุของหน้าต่าง 10% คือเพื่อไม่ต้องปรับขนาดอาร์เรย์ขนาดใหญ่ในทุกรายการบันทึก
วัตถุสไตล์ที่ระบุวิธีการจัดสไตล์คำนำหน้า (ดูด้านล่าง)
วัตถุสไตล์ที่ระบุวิธีการจัดสไตล์ส่วนหัว (ดูด้านล่าง)
หากตั้งค่าไว้ ส่วนหัวที่จะพิมพ์ที่จุดเริ่มต้นของทุกบรรทัด
process.stderr
สตรีมที่เอาต์พุตถูกเขียน
บังคับให้ใช้สีกับข้อความทั้งหมด โดยไม่คำนึงถึงสตรีมเอาต์พุต
ปิดการใช้งานสีในทุกข้อความ
เปิดใช้งานการแสดงตัวหมุนกิจกรรมบันทึกและแถบความคืบหน้า
ปิดการใช้งานการแสดงแถบความคืบหน้า
บังคับให้ใช้ธีม Unicode สำหรับแถบความคืบหน้า
ปิดการใช้งาน Unicode ในแถบความคืบหน้า
ตั้งค่าเทมเพลตสำหรับแสดงแถบความคืบหน้า ดูเอกสารประกอบเกจสำหรับรายละเอียด
เลือกชุดรูปแบบเพื่อเลือกธีมสำหรับแถบความคืบหน้า ดูเอกสารประกอบเกจสำหรับรายละเอียด
หยุดส่งข้อความไปยังสตรีม แต่อย่าทิ้ง
ส่งข้อความบัฟเฟอร์ทั้งหมดที่เขียนขณะหยุดชั่วคราว
level
{String} ระดับที่จะปล่อยข้อความที่prefix
{String} คำนำหน้าสตริง ตั้งค่าเป็น "" เพื่อข้ามmessage...
อาร์กิวเมนต์ของ util.format
ส่งข้อความบันทึกในระดับที่ระบุ
ตัวอย่างเช่น,
ชอบ log.log(level, prefix, message, ...)
ด้วยวิธีนี้ แต่ละระดับจะได้รับการจดชวเลข ดังนั้นคุณจึงสามารถทำ log.info(prefix, message)
ได้
level
{String} ตัวบ่งชี้ระดับn
{Number} ระดับตัวเลขstyle
{Object} วัตถุที่มี fg, bg, ผกผัน ฯลฯdisp
{String} การแทนที่ทางเลือกสำหรับ level
ในเอาต์พุตตั้งค่าระดับใหม่ด้วยฟังก์ชันชวเลขเป็นต้น
โปรดทราบว่าหากตัวเลขเป็น Infinity
การตั้งค่าระดับจะทำให้ข้อความบันทึกทั้งหมดถูกระงับ หากตัวเลขคือ -Infinity
วิธีเดียวที่จะแสดงคือเปิดใช้งานข้อความบันทึกทั้งหมด
name
{String} ไม่จำเป็น; ชื่อรายการความคืบหน้าtodo
ที่ต้องทำ {Number} ไม่บังคับ; จำนวนงานที่ต้องทำทั้งหมด ค่าเริ่มต้น 0weight
{จำนวน} ไม่จำเป็น; น้ำหนักของรายการนี้สัมพันธ์กับรายการอื่น ค่าเริ่มต้น 1 สิ่งนี้จะเพิ่มตัวติดตาม are-we-there-yet
ใหม่ให้กับตัวติดตามความคืบหน้า วัตถุที่ส่งคืนมีเมธอด log[level]
แต่อย่างอื่นเป็นวัตถุ Tracker
are-we-there-yet
นี่เป็นการเพิ่มตัวติดตามสตรี are-we-there-yet
ใหม่ให้กับตัวติดตามความคืบหน้า วัตถุที่ส่งคืนมีเมธอด log[level]
แต่เป็นอย่างอื่นที่เป็นวัตถุ TrackerStream
are-we-there-yet
นี่เป็นการเพิ่มกลุ่มตัวติดตาม are-we-there-yet
ให้กับตัวติดตามความคืบหน้า วัตถุที่ส่งคืนมีเมธอด log[level]
แต่อย่างอื่นเป็นวัตถุ TrackerGroup
are-we-there-yet
เหตุการณ์ทั้งหมดจะถูกปล่อยออกมาพร้อมกับวัตถุข้อความ
log
ที่ปล่อยออกมาสำหรับข้อความทั้งหมดlog.
ปล่อยออกมาสำหรับข้อความทั้งหมดที่มีระดับ
ข้อความที่มีคำนำหน้าจะแสดงคำนำหน้าเป็นกิจกรรมด้วยวัตถุสไตล์สามารถมีฟิลด์ต่อไปนี้:
fg
{String} สีสำหรับข้อความเบื้องหน้าbg
{String} สีสำหรับพื้นหลังbold
inverse
underline
{Boolean} ตั้งค่าคุณสมบัติที่เกี่ยวข้องbell
{Boolean} ส่งเสียงดัง (นี่อาจจะน่ารำคาญมาก) ทุกเหตุการณ์บันทึกจะถูกปล่อยออกมาพร้อมกับออบเจ็กต์ข้อความ และรายการ log.record
จะมีเหตุการณ์ทั้งหมดที่ถูกสร้างขึ้น พวกเขามีฟิลด์ต่อไปนี้:
id
{หมายเลข}level
{สตริง}prefix
{สตริง}message
{String} ผลลัพธ์ของ util.format()
messageRaw
{Array} อาร์กิวเมนต์เป็น util.format()
เราใช้ set-blocking
เพื่อตั้งค่าการบล็อก stderr และ stdout หากเป็นของ tty และมีการเรียก setBlocking นี่เป็นวิธีแก้ปัญหาใน Node.js 6.x เวอร์ชันแรกๆ ซึ่งทำให้ stderr และ stdout ไม่มีการบล็อกบน OSX (พวกมันบล็อก Windows อยู่เสมอและไม่เคยบล็อกบน Linux) npmlog
ต้องการให้พวกมันบล็อกเพื่อให้สามารถอนุญาตให้เอาต์พุตไปยัง stdout และ stderr อินเตอร์เลซได้