如何解决Winston-ElasticSearch 不写入 Logstash,只有一个调试器除外
我尝试使用 winston 和 winston-elasticsearch 将我的应用程序连接到 Logstash 和 ES,但由于某种原因,只有一个 logger.log 函数可以从 main.js 写入 Logstash,而所有其他 logger.log 函数都没有记录(来自 main.js 和其他模块)。
这是我的 logger.js 模块:
const { createLogger,transports,format,level } = require("winston")
const { ElasticsearchTransport } = require('winston-elasticsearch');
const path = require("path");
const elasticsearchTransportOpts = new ElasticsearchTransport({
level: "debug",useTransformer: false,clientOpts: {
node: "http://logstash-url:1234"
}
})
const logFormat = format.printf(info => `${info.timestamp} ${info.level} [${info.label}]: ${info.message}`)
const logConfiguration = {
level: "debug",format: format.combine(
format.timestamp({ format: 'DD-MM-YYYY HH:mm:ss' }),format.splat()
),transports: [
new transports.Console({
level: 'silly',format: format.combine(format.colorize(),logFormat)
}),new transports.File({
level: 'info',filename: "logs/info.log",format: format.combine(format.json())
}),new transports.File({
level: 'debug',filename: "logs/debug.log",new transports.File({
level: 'warn',filename: "logs/warn.log",new transports.File({
level: 'error',filename: "logs/error.log",elasticsearchTransportOpts
],defaultMeta: { type: "custom_field","extra.environment": "development" }
};
const logger = createLogger(logConfiguration)
这是我的 main.js,它有几个 logger.log 函数:
const logger = require("./config/logger")
async function treatFiles() {
try {
let zipFilesPaths = await findZipFiles()
let zipExtract = await extractZipFiles(zipFilesPaths)
if (zipExtract.length > 0) {
zipExtract.map(async elem => {
let fileParsing = await parseXML(elem)
let zipFileRenaming = await convertToPDX(fileParsing)
await sendFTP(zipFileRenaming)
return elem
})
return
} else {
logger.log("info",`No files to transfer`,{ label: path.basename(__filename)})
}
return
} catch (err) {
... error handling
}
}
cron.schedule('* * * * *',() => {
logger.log("debug",`Running a task every minute`,{ label: path.basename(__filename)})
treatFiles()
},{ start: true })
底部的记录器“每分钟运行一次任务”按预期记录到 Logstash 和 ES,但根本没有记录“无文件传输”记录器,并且 logger.log 功能来自其他项目中的模块也不会被记录。 所有日志也成功写入文件,但没有写入Logstash。
你能帮忙吗?我已经努力了好几天了。
谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。