No description
Find a file
Guillaume Wuip a9f9dd61c0 WebPanel
2014-12-17 13:18:24 +01:00
__misc Adding sample images 2014-01-23 17:28:14 -06:00
examples WebPanel 2014-12-17 13:18:24 +01:00
lib Emit event only after loggers options are attached 2014-12-15 12:42:49 +01:00
static Fix syntax 2014-12-17 13:17:42 +01:00
test Fix examples error 2014-09-08 12:10:16 +02:00
.gitignore Add npm-debug to .gitignore 2014-11-01 12:24:53 +01:00
.jshintrc Edit jshintrc for angular js files 2014-11-01 12:25:17 +01:00
Gruntfile.js Check statics/js too 2014-11-01 12:25:31 +01:00
index.js Build full path 2014-09-09 11:40:20 +02:00
LICENSE-MIT Adding tests and cleaning up directories 2014-08-01 02:28:44 -05:00
package.json Fix package.json typo 2014-11-01 12:26:06 +01:00
README.md Fix examples error 2014-09-08 12:10:16 +02:00
scribe.js Fix indent 2014-12-15 12:37:46 +01:00

![Logo](__misc/scribejs design logo [a].png)

Lightweight NodeJS Logging Overview

Unlike many of the libraries out there, Scribe.js allows logging on multiple files and is divided into folders by date. And it is possibly the easiest logging you can implement. And it does everything you need a basic logger to do.

  • Save messages into log files organized by user, date, and type
  • Print messages into console using colors indicating level of importance

Output Methods (Web | Console | File)

Method#Web - Select Date

Control Panel View 1 Method#Web - Select Log Type

Control Panel View 1 Method#Web - View Logs

Control Panel View 1 Method#Console - Command Prompt

Command Prompt output Method#File - File

Files output Method#File - Directory Layout

Files Directory

Installation

npm install git+https://github.com/bluejamesbond/Scribe.js.git

Documentation

var scribe = require('scribe');     

// Configuration
// --------------
scribe.configure(function(){
    scribe.set('app', 'MY_APP_NAME');                     // NOTE Best way learn about these settings is
    scribe.set('logPath', './logs'); // Doublecheck       // them out for yourself.
    scribe.set('defaultTag', 'DEFAULT_TAG');
    scribe.set('divider', ':::');
    scribe.set('identation', 5);                          // Identation before console messages
    
    scribe.set('maxTagLength', 30);                       // Any tags that have a length greather than
                                                          // 30 characters will be ignored
    
    scribe.set('mainUser', 'root');                       // Username of the account which is running
                                                          // the NodeJS server
});

// Create Loggers
// --------------
scribe.addLogger("log", true , true, 'green');            // (name, save to file, print to console,
scribe.addLogger('realtime', true, true, 'underline');    // tag color)
scribe.addLogger('high', true, true, 'magenta');
scribe.addLogger('normal', true, true, 'white');
scribe.addLogger('low', true, true, 'grey');
scribe.addLogger('info', true, true, 'cyan');

// Express.js
// WARNING: ExpressJS must be installed for this to work
// You also need to start an ExpressJS server in order for
// this to work.
// --------------
app.use(scribe.express.logger(function(req, res){         // Express.js access log
    return true;                                          // Filter out any Express messages
}));

// Control Panel
// WARNING: ExpressJS must be installed for this to work
// You also need to start an ExpressJS server in order for
// this to work.
// --------------
app.get('/log', scribe.express.controlPanel());           // Enable web control panel

// Basic logging
// --------------
console.log("[Tagname] Your message");                    // [Tagname]             Your message  
console.realtime("[Tagname]   Your message");             // [Tagname]             Your message
console.high("[Tagname]         Your message  ");         // [Tagname]             Your message
console.normal("[Tagname][]Your message");                // [Tagname]             []Your message
console.low("[Tagname]Your message");                     // [Tagname]             Your message

// Tagging function
// ----------------
console.t("Tagname").log("Your message");                 // [Tagname]             Your message
console.t("Tagname").log("Your message");                 // [Tagname]             Your message
console.t("Tagname").log("Your message");                 // [Tagname]             Your message

// Force use default tag
// ---------------------
console.t().log("Your message");                          // [MY_APP_NAME]         Your message

// Pass in file name
// -----------------
console.f(__filename).log("Your message");               // [file.js]              Your message

// Auto tagging
// ------------
console.log("Your message");                             // [invokedFrom.js:25]    Your message

// Show Date
// ---------
console.day().log("Your message"); // [invokedFrom.js:25]    Sep_8_14  Your message

// Show Time
// ---------
console.time().log("Your message"); // [invokedFrom.js:25]    Sep_8_14 12:02:35 PM  Your message

// Tag Scoping
// -----------
(function(console){

    console.info("yeeha");                               // [scoped-tag]           yeeha
    console.log("yeeha");                                // [scoped-tag]           yeeha
    
})(console.t('scoped-tag'));

Experimental

// Simple Testing
// --------------
console.test("Test name").should(5).be(5);           // Pretty printed test results    

Contributors

bluejamesbond