Skip to Content
Node与Express开发(第2版)
book

Node与Express开发(第2版)

by Ethan Brown
June 2021
Intermediate to advanced
290 pages
9h 21m
Chinese
Posts & Telecom Press
Content preview from Node与Express开发(第2版)
考虑生产环境中的问题
|
117
const morgan = require('morgan')
const fs = require('fs')
switch(app.get('env')) {
case 'development':
app.use(morgan('dev'))
break
case 'production':
const stream = fs.createWriteStream(__dirname + '/access.log',
{ flags: 'a' })
app.use(morgan('combined', { stream }))
break
}
如果你像往常那样启动服务器(
node meadowlark.js
)并访问网页,就可以看到记录到
控制台的活动。要想看看日志输出在生产模式下是什么样子,只需在启动服务器时带上
NODE_ENV=production
。这时如果再访问网页,在终端上就不会看到任何活动了(对于生产
服务器,这很可能是我们所期望的),所有的活动都会以
Apache
的组合日志格式记录到文
件中(很多服务器工具会生成这种格式的日志)。
这是怎么实现的?我们先创建了一个可追加的(
{ flags: a}
)写入流,然后把它传入
morgan
的配置对象中。
mor
gan
有很多配置项,更多信息请参考它的官方文档。
在前面的例子中,我们使用了
__dirname
把请求日志存储到项目本身的子目
录下。如果选择这种做法,记得把
log
加入
.gitignore ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

面向对象的思考过程(原书第5版)

面向对象的思考过程(原书第5版)

马特 魏斯费尔德
精通模块化JavaScript

精通模块化JavaScript

Nicolás Bevacqua

Publisher Resources

ISBN: 9787115565099