记录器和登录 nodejs 应该是什么样的?
loggers and logging in nodejs what is should be like?
我是第一次学习记录器和日志记录主题。在观看了一些教程后,我正在尝试通过 nodejs 应用程序创建它。
完成后,我在 index.js 文件中找到了所有相关教程.. 就像
logger.warn('text warn')
logger.error('text error')
logger.error(new Error('smth wrong here'))
但我研究的是我应该打印系统日志,如果它有警告或任何问题。
我该怎么做?如果我想将这些详细信息保存在文本文件中会更好吗?
你的问题不是很清楚,但我想你想知道如何使用记录器模块。
我正在使用 winston。它相当易于使用,文档也非常清晰。
您只需要创建自己的 logger
,这是通过使用 createLogger
函数完成的。您可以使用许多选项来配置 logger
,因此您只需要阅读文档即可。
这是我如何在我的项目中使用它的示例,导出 logger
然后在应用程序中使用它:
logger.js:
const { addColors, transports, format, createLogger } = require("winston");
const { combine, colorize, simple, prettyPrint } = format;
const logLevels = {
levels: { critical: 0, error: 1, warning: 2, debug: 3, info: 4 },
colors: {
critical: "bold magenta",
error: "bold red",
warning: "bold yellow",
info: "bold blue",
debug: "bold green",
},
};
addColors(logLevels.colors);
const transport =
process.env.NODE_ENV === "production"
? new transports.Console({
format: combine(colorize(), simple()),
})
: new transports.File({ filename: "file.log" });
const logger = createLogger({
levels: logLevels.levels,
format: prettyPrint(),
transports: [transport],
});
module.exports = logger;
app.js:
const logger = require("./logger");
logger.log({ level: "info", message: "info log" });
我是第一次学习记录器和日志记录主题。在观看了一些教程后,我正在尝试通过 nodejs 应用程序创建它。
完成后,我在 index.js 文件中找到了所有相关教程.. 就像
logger.warn('text warn')
logger.error('text error')
logger.error(new Error('smth wrong here'))
但我研究的是我应该打印系统日志,如果它有警告或任何问题。 我该怎么做?如果我想将这些详细信息保存在文本文件中会更好吗?
你的问题不是很清楚,但我想你想知道如何使用记录器模块。
我正在使用 winston。它相当易于使用,文档也非常清晰。
您只需要创建自己的 logger
,这是通过使用 createLogger
函数完成的。您可以使用许多选项来配置 logger
,因此您只需要阅读文档即可。
这是我如何在我的项目中使用它的示例,导出 logger
然后在应用程序中使用它:
logger.js:
const { addColors, transports, format, createLogger } = require("winston");
const { combine, colorize, simple, prettyPrint } = format;
const logLevels = {
levels: { critical: 0, error: 1, warning: 2, debug: 3, info: 4 },
colors: {
critical: "bold magenta",
error: "bold red",
warning: "bold yellow",
info: "bold blue",
debug: "bold green",
},
};
addColors(logLevels.colors);
const transport =
process.env.NODE_ENV === "production"
? new transports.Console({
format: combine(colorize(), simple()),
})
: new transports.File({ filename: "file.log" });
const logger = createLogger({
levels: logLevels.levels,
format: prettyPrint(),
transports: [transport],
});
module.exports = logger;
app.js:
const logger = require("./logger");
logger.log({ level: "info", message: "info log" });