This package has been deprecated

Author message:

Use Precis Client + proper adapter instead.

precis-file-logger

0.0.7 • Public • Published

Precis File Logger

A file based logger for precis, really a building block for the other loggers.

If your looking for an advanced logger, look to Bunyan, otherwise this gives you a basic file logger.

Built in Adapters

ConsoleAdapter

Not enabled by default, can be enabled by either adding to Logger.adapters or to each logger instance using:

var Logger = require('precis-file-logger').Logger;
var FileAdapter = require('precis-file-logger').FileAdapter;
var ConsoleAdapter = require('precis-file-logger').ConsoleAdapter;

var logger = new Logger({
  adapters: [FileAdapter, ConsoleAdapter]
});

Takes options from the options.console object passed to the Logger instance.

The options are passed directly to util.inspect.

Default options:

{
  color: true,
  showHidden: true,
  dept: null
}

FileAdapter

Logs messages to a file when the arrive, provides mechanics for compressing log files when the day is complete and provides a way to delete (trim) old log files and archives when they are no longer necessary.

Logger Global Config

Logger.adapters


Logger.logLevels


Usage Example:

var Logger = require('precis-file-logger').Logger;
var FileAdapter = require('precis-file-logger').FileAdapter;
var ConsoleAdapter = require('precis-file-logger').ConsoleAdapter;

var fs = require('fs');
var fileDate = new Date(Date.parse('2015/01/01'));
var async = require('async');

var logger = new Logger({
  adapters: [FileAdapter, ConsoleAdapter]
});

var testArray = [];
for(var i = 0; i<10; i++){
  testArray.push(i);
}

for(var i = 0; i<10; i++){
  logger.info({
    index: i,
    message: 'Test '+i,
    time: fileDate
  });
}

async.each(testArray, function(n, next){
  console.log('Info on ', n);
  logger.info({
    index: n,
    message: 'Async Test '+n,
    time: fileDate
  }, function(){
    console.log('next', n);
    next();
  });
}, function(){
  console.log('Dumping plain text and an Array for a try');
  async.each(testArray, function(n, next){
    logger.info('Test', n, !!n, [n], {time: fileDate}, function(){
      next();
    });
  }, function(){
    console.log('Error test');
    async.each(testArray, function(n, next){
      logger.error(new Error('Test error '+n), {time: fileDate}, function(){
        next();
      });
    }, function(){

      console.log('Circular test');
      var o = {root: 'obj true'};
      o.o = o;
      logger.info('Circular: ', o, {time: fileDate}, function(){
        console.log(fs.readFileSync(__dirname+'/logs/2015-01-01.log').toString());
        console.log('Cleaning up test log file.');
        fs.unlink(__dirname+'/logs/2015-01-01.log', function(){
          console.log('All done');
        });
      });
    });
  });
});

Readme

Keywords

none

Package Sidebar

Install

npm i precis-file-logger

Weekly Downloads

0

Version

0.0.7

License

MIT

Last publish

Collaborators

  • jdarling