Winston์ ๋ฌธ์์ ๋ฐ๋ผ
๋ํ ์ ์ก์ ๋ก๊ทธ ์์ค์ ๋์ ์ผ๋ก ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
์์คํด 2.x
var logger = new (winston.Logger)({
transports: [
new (winston.transports.Console)({ level: 'warn' }),
new (winston.transports.File)({ filename: 'somefile.log', level: 'error' })
]
});
logger.debug("Will not be logged in either transport!");
logger.transports.console.level = 'debug';
logger.transports.file.level = 'verbose';
logger.verbose("Will be logged in both transports!");
์์คํด 3.x
const transports = {
console: new winston.transports.Console({ level: 'warn': level: 'warn' }),
file: new winston.transports.File({ filename: 'combined.log', level: 'error' })
};
const logger = winston.createLogger({
transports: [
transports.console,
transports.file
]
});
logger.info('Will not be logged in either transport!');
transports.console.level = 'info';
transports.file.level = 'info';
logger.info('Will be logged in both transports!');
์ด๋ ๊ฒ ๋ง๋ ๊ฒฝ์ฐ 3.0์์ ๋ ๋ฒจ์ ์ด๋ป๊ฒ ๋ณ๊ฒฝํ ์ ์์ต๋๊น?
var logger = new (winston.Logger)({
transports: [
new (winston.transports.Console)({ level: 'warn' }),
new (winston.transports.File)({ filename: 'somefile.log', level: 'error' })
]
});
๋์ ๋ ๋ฒจ ๋ณ๊ฒฝ ๋ฉ์ปค๋์ฆ์ ์ด์ ๋ฒ์ ์ด ์ ๋ฒ์ ๋ณด๋ค ํจ์ฌ ๋ซ๋ค๋ ๊ฒ์ด ๋ถ๋ช ํ์ง ์์ต๋๊น?
๋๋ ๋ํ ์์ ์ ์ฌํ winston 3.x์ ๋ํ ์๋ฃจ์ ์ ์ฐพ๊ณ ์์ต๋๋ค.
๋๋ winston.create() ํจ์ ์ธ๋ถ์์ ์ ์ก์ ๊ฐ์ง๊ณ ์ธ๋ถ์์ ๋ณ๊ฒฝํ๋๋ฐ ์๋ํ์ต๋๋ค!
var transportsList = const transports = {
console: new winston.transports.Console({ level: 'warn': level: 'warn' }),
file: new winston.transports.File({ filename: 'combined.log', level: 'error' })
};
var logger = new (winston.Logger)({
transports: transportsList
});
//Then change below
transportsList.console.level = 'silly'
#1191์ ๋ณต์ ๋ณธ์ผ๋ก ๋ซ์ต๋๋ค. ์ด๊ฒ์ ๋ก๋๋งต์ ์์ผ๋ฉฐ [email protected]
๊ฐ 2018๋
5์ 29์ผ์ ์ถ์๋๊ธฐ ์ ์ ์์ ๋ ๊ฒ์
๋๋ค.
์ด๊ฒ์ ๋๋ฅผ ์ํด ์ผํ์ผ๋ฉฐ ๋ก๊ฑฐ ๊ฐ์ฒด์ ์ง์ ์ก์ธ์ค ํ ์ ์๊ธฐ ๋๋ฌธ์ ref๋ฅผ ํตํด ์ก์ธ์ค ํ ์ ์๋๋ก ์ด๋ฆ์ผ๋ก Keyed๋ก ๊ฐ ์ ์ก์ ์ด๋ฆ์ ์ง์ ํ์ต๋๋ค.
`
var self = this;
self.logger = self.winston.createLogger({
levels:self.winston.config.syslog.levels
,transports:
[
new self.winston.transports.Console({
level: self.config.console.level.ref
,formatter: self._consoleLogFormatter
,name: 'console'
})
]
});
self.transports = _.keyBy(self.logger.transports,"name");
self.transports.console.level = 'info';
`