1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- var assert = require('assert'),
- exec = require('child_process').exec,
- fs = require('fs'),
- path = require('path'),
- vows = require('vows'),
- winston = require('../../lib/winston'),
- helpers = require('../helpers');
- var archiveTransport = new winston.transports.File({
- timestamp: true,
- json: false,
- zippedArchive: true,
- tailable: true,
- filename: 'testarchive.log',
- dirname: path.join(__dirname, '..', 'fixtures', 'logs'),
- maxsize: 4096,
- maxFiles: 3
- });
- function data(ch) {
- return new Array(1018).join(String.fromCharCode(65 + ch));
- }
- function logKbytes(kbytes, txt) {
-
-
-
-
-
- for (var i = 0; i < kbytes; i++) {
- archiveTransport.log('info', data(txt), null, function() {});
- }
- }
- vows.describe('winston/transports/file/zippedArchive').addBatch({
- "An instance of the File Transport with tailable true": {
- "when created archived files are rolled": {
- topic: function() {
- var that = this,
- created = 0;
- archiveTransport.on('logged', function() {
- if (++created === 6) {
- return that.callback();
- }
- logKbytes(4, created);
- });
- logKbytes(4, created);
- },
- "should be only 3 files called testarchive.log, testarchive1.log.gz and testarchive2.log.gz": function() {
-
-
- for (var num = 0; num < 6; num++) {
- var file = !num ? 'testarchive.log' : 'testarchive' + num + '.log.gz',
- fullpath = path.join(__dirname, '..', 'fixtures', 'logs', file);
-
- if (num >= 3) {
- assert.throws(function() {
- fs.statSync(fullpath);
- }, Error);
- } else {
-
- assert.doesNotThrow(function() {
- fs.statSync(fullpath);
- }, Error);
- }
- }
-
- },
- }
- },
- }).export(module);
|