Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
231 views
in Technique[技术] by (71.8m points)

node.js - NodeJS Winston not writing in the log file

I'm trying to use Winston to create logs, but it is not writing in the file.

I have the following file in controllers/myControler/myFile.js

const path = require('path');

const winston = require('winston');
const filename = path.join(__dirname, 'testLog.log');
const logger = winston.createLogger({
    transports: [
        new winston.transports.Console({ filename, level: 'error' })
    ]
});

exports.test = async (req, res, next) => {
   logger.log({
      level: 'error',
      message: 'Test'
   });
}

I have the file testLog.log in the root of my project.

When I run the application, I can see in the terminal:

{"level":"error","message":"Test"}

However, the testLog.log file still empty.

Thanks

question from:https://stackoverflow.com/questions/65837945/nodejs-winston-not-writing-in-the-log-file

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

new winston.transports.Console does not accept filename option.

You have to append File transport for your logger.

const logger = winston.createLogger({
  transports: [
    new winston.transports.Console({ level: 'error' }),
    // new line
    new winston.transports.File({ filename, level: 'error' }),
  ]
});

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...