登录 Node.js
Node.js 是一个 JavaScript 运行时,它建立在 Chrome 的 V8 JavaScript 引擎之上,它的运行时环境包括我们想要执行用 JavaScript 编写的程序的所有内容。日志记录是了解 Node.js 程序的完整应用程序生命周期的重要组成部分。从开始调试到添加新功能,日志通过分析数据提供支持,我们可以通过在错误发生时立即发现错误来更轻松、更快速地解决错误。 Node.js 中有常见的日志记录级别:错误、警告、信息、调试。日志记录涉及以更持久的方式记录有关应用程序运行时行为的信息。
Node.js 的登录方式有以下几种:
console.log:最初的日志记录方法是 console.log,它是一个在调试控制台上写入消息以登录的函数,但是您几乎无法控制从代码外部记录日志的位置。
句法:
console.log(level, message)
调试模块:使用调试的好处是很多包都使用它。当您的后端收到 Internet 请求时,您可以打开它以获取有关 Express 和 Koa 等 Web 中间件中正在发生的事情的更多信息。好的框架将为您提供如何附加日志中间件,但您可能不会也收到所有的小字。
中间件中间件只是您将放入请求管道的东西。设置日志中间件的方法:
- 应用:
Javascript
const app = express() const loggingMiddleware = require('my-logging-middleware') app.use(loggingMiddleware)
Javascript
const router = express.Router() const routeLoggingMiddleware = require('my-route-logging-middleware') router.use(routeLoggingMiddleware)
Javascript
const app = express() const winston = require('winston') const consoleTransport = new winston.transports.Console() const myWinstonOptions = { transports: [consoleTransport] } const logger = new winston.createLogger(myWinstonOptions) function logRequest(req, res, next) { logger.info(req.url) next() } app.use(logRequest) function logError(err, req, res, next) { logger.error(err) next() } app.use(logError)
- 路由器:
Javascript
const router = express.Router() const routeLoggingMiddleware = require('my-route-logging-middleware') router.use(routeLoggingMiddleware)
Winston 包: Winston 包括存储选项、不同的日志级别和查询以及分析器。
Javascript
const app = express()
const winston = require('winston')
const consoleTransport = new winston.transports.Console()
const myWinstonOptions = {
transports: [consoleTransport]
}
const logger = new winston.createLogger(myWinstonOptions)
function logRequest(req, res, next) {
logger.info(req.url)
next()
}
app.use(logRequest)
function logError(err, req, res, next) {
logger.error(err)
next()
}
app.use(logError)