javascript - 没有使用winston node js库创建日志文件
问题描述
我正在使用节点 js 并使用 Winston 库进行日志记录。以下代码不会创建日志文件。
var winston = require('winston');
var logger = winston.createLogger({
transports: [
new winston.transports.File({
level: 'info',
filename: './logs/all-logs.log',
handleExceptions: true,
json: true,
maxsize: 5242880, //5MB
maxFiles: 5,
colorize: false
}),
new winston.transports.Console({
level: 'debug',
handleExceptions: true,
json: false,
colorize: true
})
],
exitOnError: false
});
module.exports = logger;
module.exports.stream = {
write: function(message, encoding){
logger.info(message);
}
};
logger.info("你好世界");
它可以很好地记录到终端:
{"message":"hello world","level":"info"}
目录结构是这样的
-test.js
-winston.js
-log
解决方案
这是你应该使用温斯顿:
/log/
下面的代码在目录中创建日志文件。
首先,使用以下命令安装winston-daily-rotate-file、fs 和 winston:
npm i winston-daily-rotate-file fs winston
创建一个名为winston.js的文件
const fs = require("fs");
const winston = require("winston");
const logDir = "log";
if (!fs.existsSync(logDir)) {
fs.mkdirSync(logDir);
}
const tsFormat = () => (new Date()).toLocaleTimeString();
module.exports = logger = winston.createLogger({
transports: [
new (winston.transports.Console)({
format: winston.format.combine(
winston.format.colorize(),
winston.format.timestamp(),
winston.format.align(),
winston.format.simple(),
),
level: 'info'
}),
new (require("winston-daily-rotate-file"))({
filename: `${logDir}/-results.log`,
format: winston.format.combine(
winston.format.timestamp(),
winston.format.json(),
)
}),
new winston.transports.File({
filename: 'log/error.log',
level: 'error',
format: winston.format.combine(
winston.format.timestamp(),
winston.format.simple(),
)
}),
]
});
现在您所要做的就是导入记录器并使用它。下面是示例。
现在在同一目录中,创建一个新文件test.js并添加以下代码:
const logger = require("./winston.js");
logger.info(`Test info Log!`);
logger.error(`Test error Log!`);
现在运行 test.js 使用
node test.js
希望这是您正在寻找的。
推荐阅读
- uwp - 设置 MinDate 和 MaxDate 时的 UWP CalendarDatePicker 问题 - Windows 10 - 1903+
- java - Android:如何在 ImageView 旋转后裁剪图像?
- c# - 字段“操作”无需赋值即可获得价值
- reactjs - React-intl:如果不存在其他语言的特定味精,如何提供默认语言?
- sql-server - SQL Server-分组依据
- python - 单击按钮后如何更新变量的值?
- c++ - 部分排序期间成员函数模板的原始类型是什么
- javascript - slick-carousel 没有错误,但 3 个元素的滑块的外观已损坏
- javascript - 如何检查文本是否缺少某个字符?
- deep-learning - 如何使用监督学习预测短语是否与短文本或文章相关?