2014-01-23 17:17:54 -06:00

=======
**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.
2014-01-24 01:55:43 -06:00
- Save messages into log files organized by user, date, and type
2014-01-24 01:56:00 -06:00
- Print messages into console using colors indicating level of importance
2014-01-23 17:17:54 -06:00
2014-05-19 03:12:57 -05:00
Output Methods (Web | Console | File)
2014-01-23 17:17:54 -06:00
=======
2014-05-19 03:15:03 -05:00
Method#Web - Select Date
2014-05-19 03:10:54 -05:00
---

2014-05-19 03:15:03 -05:00
Method#Web - Select Log Type
2014-05-19 03:10:54 -05:00
---
2014-05-19 03:12:57 -05:00

2014-05-19 03:15:03 -05:00
Method#Web - View Logs
2014-05-19 03:10:54 -05:00
---

2014-05-19 03:15:03 -05:00
Method#Console - Command Prompt
2014-01-23 17:32:39 -06:00
---

2014-05-19 03:15:03 -05:00
Method#File - File
2014-01-23 17:32:39 -06:00
---

2014-05-19 03:15:03 -05:00
Method#File - Directory Layout
---

2014-01-23 17:17:54 -06:00
How to use Scribe.js
=======
Using Sribe is as simple as putting the contents of the Scribe folder into your root NodeJS folder. Note: What I am about to show you is the simplest way to use Scribe.js. Since this library (if you can even call it that), is not insave at all, and it should be very easy to adjust to your liking.
1. Make a Scribe directory
----
```
\root
\node_modules
\views
\controllers
\bunchOfOtherFolder...
\scribe < --- Make a folder named " scribe "
app.js
```
2. Add Scribe into this folder
----
```
\scribe < --- Copy the contents of the " src " folder ( which you get from this repo ) into " scribe ".
```
4. Install the required modules
----
```bat
npm install colors
npm install moment
npm install mkdirp
2014-05-31 06:00:53 -05:00
npm install callsite
2014-01-23 17:17:54 -06:00
```
5. Logging with Scribe
----
```js
2014-05-31 06:10:57 -05:00
var scribe = require('./scribe');
2014-05-26 21:13:53 -05:00
2014-05-31 06:00:53 -05:00
// Configuration
// --------------
scribe.configure(function(){
scribe.set('app', 'MY_APP_NAME'); // NOTE Best way learn about these settings is
scribe.set('logPath', './../logs'); // 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
// --------------
2014-05-31 06:10:57 -05:00
scribe.addLogger("log", true , true, 'green'); // (name, save to file, print to console,
scribe.addLogger('realtime', true, true, 'underline'); // tag color)
2014-05-26 21:13:53 -05:00
scribe.addLogger('high', true, true, 'magenta');
scribe.addLogger('normal', true, true, 'white');
scribe.addLogger('low', true, true, 'grey');
2014-05-31 06:00:53 -05:00
// Express.js
// --------------
app.use(scribe.express.logger(function(req, res){ // Express.js access log
2014-05-31 06:08:55 -05:00
return true; // Filter out any Express messages
2014-05-26 21:13:53 -05:00
}));
2014-05-31 06:00:53 -05:00
// Control Panel
// --------------
2014-05-31 06:07:08 -05:00
app.get('/log', scribe.express.controlPanel()); // Enable web control panel
2014-05-31 06:00:53 -05:00
// 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
2014-05-31 06:07:08 -05:00
// ------------
2014-05-31 06:00:53 -05:00
console.log("Your message"); // [invokedFrom.js:25] Your message
```
6. Experimental
----
```js
2014-05-31 06:07:08 -05:00
// Simple Testing
// --------------
2014-05-31 09:30:06 -05:00
console.test("Test name").should(5).be(5); // Pretty printed test results
2014-01-23 17:17:54 -06:00
```
Contributors
=======
```
bluejamesbond
```