Π‘ΠΎΠ³Π»Π°ΡΠ½ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ 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]
29Β ΠΌΠ°Ρ 2018Β Π³ΠΎΠ΄Π°.
ΠΡΠΎ ΡΡΠ°Π±ΠΎΡΠ°Π»ΠΎ Π΄Π»Ρ ΠΌΠ΅Π½Ρ, Ρ Π΄Π°Π» ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΡΡΠ°Π½ΡΠΏΠΎΡΡΡ ΠΈΠΌΡ, ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΠΎΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΡΡΠΎΠ±Ρ Ρ ΠΌΠΎΠ³ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊ Π½Π΅ΠΌΡ Π΄ΠΎΡΡΡΠΏ ΡΠ΅ΡΠ΅Π· ref, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΎΡΠ° Π½Π΅Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π½Π°ΠΏΡΡΠΌΡΡ.
`
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';
`