温斯顿:尝试写没有传输的日志-使用默认记录器

时间:2018-08-25 12:06:53

标签: javascript node.js winston

我遵循了一个教程,在我的Express应用中设置Winston(2.x)默认记录器。当更新到当前版本的Winston(3.0.0)时,我在添加传输器时遇到了问题。我遵循了latest docs,但仍然在控制台中收到通知,根本没有创建任何日志文件:

  

[winston]尝试写没有传输的日志

logging.js

const winston = require('winston');

module.exports = function () {

  const files = new winston.transports.File({ filename: 'logfile.log' });
  const myconsole = new winston.transports.Console();

  winston.add(myconsole);
  winston.add(files);

}

index.js

const winston = require('winston');
...

require('./logging');
winston.info("Give some info");
  

[winston]尝试写没有传输的日志   {“ message”:“提供一些信息”,“ level”:“信息”}

我在做什么错了?

4 个答案:

答案 0 :(得分:6)

在Winston 3中,您需要创建一个logger对象,然后向其中添加transport

温斯顿3号有很多examples,但为了适应readme,请执行以下操作:

const logger = winston.createLogger({
  level: 'info',
  format: winston.format.json(),
  transports: [
    new winston.transports.Console(),
    new winston.transports.File({ filename: 'logfile.log' })
  ]
});

logger.info('it works!!');

答案 1 :(得分:1)

我也有类似的问题。如果我没记错的话,我必须在我的index.js中将需求作为函数调用。

margin-top

答案 2 :(得分:0)

如果要在Winston v3中使用默认记录器,则只需将这段代码添加到主文件中

const winston = require('winston')

winston.add(new winston.transports.File({ filename: 'logfile.log' }))

答案 3 :(得分:0)

我遇到了同样的问题,仅查看文档,我就可以通过添加以下代码在文件中写入日志。

1。创建文件logger.js并粘贴以下代码

// => logger.js
const logger = winston.createLogger({
level: 'info',
format: winston.format.json(),
defaultMeta: { service: 'user-service' },
transports: [   
  new winston.transports.File({ filename: 'error.log', level: 'error' }),
  new winston.transports.File({ filename: 'combined.log' })
]
});

if (process.env.NODE_ENV !== 'production') {
   logger.add(new winston.transports.Console({
   format: winston.format.simple()
   }));
}

// just add the below to write into a file
winston.add(logger);

2。要求将其放入您的app.js文件

// => app.js
require('./middlewares/logger');

3。只需在您的端点之一的函数中编写以下代码即可对其进行测试。

     router.get('/', async (req, res) => {
       throw new Error('Resource not found');  
       res.send({ error: 'Resource not found' });
     }); 

Et Voilaçamarche。进入错误日志文件,在此处找到此消息。

{"message":"500 - Resource not found - /api/genres - GET - ::1","level":"error"}