Я пытаюсь записать HTTP-запросы в файл .log
.
Я создаю и пишу его так.
const accessLogStream = fs.createWriteStream(path.join(__dirname, 'logger.log'), { flags: 'a' });
и пишу в него через промежуточное ПО.
app.use((req, res, next) => {
const start = process.hrtime()
res.on('finish', () => {
const durationInMilliseconds = getDurationInMilliseconds (start); accessLogStream.write(`${req.method}\t\t${req.originalUrl}\t\t${res.statusCode}\t\t${Math.trunc(durationInMilliseconds).toLocaleString()}ms\n`)
})
next()
})
при достижении конечной точки /logs
Я читаю данные в файле
app.get('/api/v1/on-covid-19/logs?',(req,res) => {
fs.readFile('./logger.log', 'utf8', function(err, data) {
if (err) throw err;
// line by line
res.format({
'text/plain': function () {
res.send(data)}})
})
});
Приведенная выше функция может записывать в мой файл logger.log
в devt, но не обновляет logger.log
файл в производстве heroku
. Что я не делаю?
Удар по конечной точке /logs
возвращает пустую строку data
в производстве.