【发布时间】:2019-10-21 16:14:39
【问题描述】:
我可以通过使用require 来使用winston-daily-rotate-file 依赖项。
var DailyRotateFile = require('winston-daily-rotate-file');
但是当我尝试像下面这样导入时,它不起作用。如何解决?
import * as DailyRotateFile from 'winston-daily-rotate-file';
custom-logger.js
import { createLogger, format, transports } from 'winston';
import * as DailyRotateFile from 'winston-daily-rotate-file';
import fs from 'fs';
import path from 'path';
const env = process.env.NODE_ENV || 'development';
const logDir = 'log';
if(!fs.existsSync(logDir)) {
fs.mkdirSync(logDir);
}
const dailyRotateFileTransport = new DailyRotateFile({
filename: `${logDir}/%DATE%-results.log`,
datePattern: 'YYYY-MM-DD',
maxSize: '1k'
})
const logger = createLogger({
level: env === 'development' ? 'debug' : 'info',
format: format.combine(
format.label({ label: path.basename(process.mainModule.filename)}),
//format.colorize(),
format.timestamp({
format: 'YYYY-MM-DD HH:mm:ss'
}),
format.json()
),
transports: [
new transports.Console({
level: 'info',
format: format.combine(
format.printf(
info => `${info.timestamp} ${info.level} [${info.label}]: ${info.message}`
)
)
}),
dailyRotateFileTransport
]
});
module.exports = logger;
在运行应用程序时,出现以下错误
var dailyRotateFileTransport = new DailyRotateFile({
^
TypeError: DailyRotateFile is not a constructor
【问题讨论】:
-
您收到的确切错误是什么?
-
@Dzhuneyt 我有错误的内容以及自定义记录器文件。
-
尝试用
require('winston-daily-rotate-file')替换import * as DailyRotateFile from 'winston-daily-rotate-file'; -
@Avanthika 我之前做过。当我使用
require时它工作正常。我想使用导入。
标签: javascript node.js logging winston