Winston เป็นตัวเลือกที่ดีสำหรับนักพัฒนาส่วนใหญ่ ฉันใช้วินสตันมานานแล้ว เมื่อเร็ว ๆ นี้ฉันใช้ winston พร้อมกับ papertrail ซึ่งจะทำการบันทึกแอปพลิเคชันไปอีกระดับ
นี่คือภาพหน้าจอที่ดีจากเว็บไซต์ของพวกเขา
มีประโยชน์อย่างไร
คุณสามารถจัดการบันทึกจากระบบต่างๆได้ในที่เดียว สิ่งนี้มีประโยชน์มากเมื่อคุณมีการสื่อสารแบ็กเอนด์สองรายการและสามารถดูบันทึกจากทั้งสองที่
บันทึกเป็นรายการสด คุณสามารถดูบันทึกเรียลไทม์ของเซิร์ฟเวอร์ที่ใช้งานจริงของคุณ
การค้นหาและตัวกรองที่มีประสิทธิภาพ
คุณสามารถสร้างการแจ้งเตือนเพื่อส่งอีเมลถึงคุณหากพบข้อความในบันทึก
และคุณสามารถค้นหาเพิ่มเติมได้ที่http://help.papertrailapp.com/kb/how-it-works/event-viewer/
การกำหนดค่าอย่างง่ายโดยใช้winston
, winston-express
และwinston-papertrail
โมดูลโหนด
import winston from 'winston';
import expressWinston from 'express-winston';
//
// Requiring `winston-papertrail` will expose
// `winston.transports.Papertrail`
//
require('winston-papertrail').Papertrail;
// create winston transport for Papertrail
var winstonPapertrail = new winston.transports.Papertrail({
host: 'logsX.papertrailapp.com',
port: XXXXX
});
app.use(expressWinston.logger({
transports: [winstonPapertrail],
meta: true, // optional: control whether you want to log the meta data about the request (default to true)
msg: "HTTP {{req.method}} {{req.url}}", // optional: customize the default logging message. E.g. "{{res.statusCode}} {{req.method}} {{res.responseTime}}ms {{req.url}}"
expressFormat: true, // Use the default Express/morgan request formatting. Enabling this will override any msg if true. Will only output colors with colorize set to true
colorize: true, // Color the text and status code, using the Express/morgan color palette (text: gray, status: default green, 3XX cyan, 4XX yellow, 5XX red).
ignoreRoute: function (req, res) { return false; } // optional: allows to skip some log messages based on request and/or response
}));
ฉันหวังว่านี่จะช่วยให้ใครบางคนจัดการบันทึกของพวกเขา !!