JSON不会呈现日志堆栈跟踪

时间:2019-07-05 17:41:28

标签: node.js express

这是我设置log4js的方式。

import log4js from 'log4js';
const logger = log4js.getLogger();
log4js.configure({
  appenders: { log: { type: 'file', filename: 'logTofile.json' } },
  categories: { default: { appenders: ['log'], level: 'ALL' } }
});
const app = express();

这是我如何检索json

app.get('/logtofile', (req, res, next) => {
  let rawdata = fs.readFileSync('logTofile.json'); 
  const log = JSON.parse(rawdata); 
  res.json(log); 
});

这是它在 logTofile.json

上给出的输出

enter image description here

呈现此

enter image description here

无论如何,我们可以在logTofile.json文件中获取要呈现的日志json吗?

1 个答案:

答案 0 :(得分:1)

这是因为默认情况下,fs.readFileSync('logTofile.json');将在缓冲区中读取。

您看到的输出是Buffer对象的JSON.parse

您必须将'utf8'传递给fs.readFileSync作为第二个参数。

fs.readFileSync('logTofile.json'); // Buffer
fs.readFileSync('logTofile.json', 'utf8'); // String

https://nodejs.org/dist/latest-v10.x/docs/api/fs.html#fs_fs_readfilesync_path_options