को छोड़कर विंस्टन का उपयोग करके लॉग को घुमाने के लिए लॉग इन करने के लिए मुझे वर्तमान दिन के लिए फ़ाइल को छोड़कर दैनिक लॉग घुमाने की आवश्यकता है। मैं विंस्टन और विंस्टन-दैनिक-घुमाव-फ़ाइल पुस्तकालयों का उपयोग कर रहा हूं।पहले दिन
निम्नलिखित उदाहरण में, फ़ाइल "info.log.2016-08-09" पहली बार उत्पन्न होती है जब मैं नोड निष्पादित करता हूं।
लेकिन, मुझे वास्तव में "info.log" फ़ाइल जेनरेट करने की आवश्यकता है, और इस दिन के बाद, इसका नाम बदलकर "info.log.2016-08-09" कर दिया जाना चाहिए, और इसके लिए एक नया "info.log" बनाना चाहिए वर्तमान दिन मुझे समझ में आता है कि यह अन्य अनुप्रयोगों में सामान्य व्यवहार है।
var logger = new (winston.Logger)({
transports: [
new dailyRotateFile(
{
//your definition of rotate file
}),
new (winston.transports.File)({ filename: 'info.log' })
]
});
और फिर नष्ट करने के लिए कुछ क्रॉन की स्थापना:
var logger = new (winston.Logger)({
transports: [
new dailyRotateFile(
{
name: 'cronInfo',
filename: path.join(__dirname,"log", "info.log"),
level: 'info',
timestamp: function(){
return utils.formatDate(new Date(), "yyyy-mm-dd'T'HH:MM:ss.l'Z'")
},
formatter: function(options) {
return options.timestamp() +' ['+ options.level.toUpperCase() +'] '+ (undefined !== options.message ? options.message : '') +
(options.meta && Object.keys(options.meta).length ? '\n\t'+ JSON.stringify(options.meta) : '');
},
json:false,
datePattern:".yyyy-MM-dd"
})
]
});
जब एप्लिकेशन शुरू होता है तो आप टाइमर को 'टाइम-टू-चेंज-लॉग-नाम' पर सेट कर सकते हैं। टाइमर पर: लॉग-फ़ाइल का नाम बदलें, 'Winston' कॉल से बचने के लिए' सिंक' फ़ंक्शन 'द्वारा नया 'info.log' बनाएं, अगला टाइमर सेट करें। शायद, 'Winston' को लॉग-फ़ाइल डिस्क्रिप्टर/स्ट्रीम अपडेट करने के लिए पुनरारंभ करना होगा (मुझे यकीन नहीं है कि यह संभव है)। –
https://github.com/winstonjs/winston-daily-rotate-file/issues/23 – Arjan