gracelog v0.7.9
gracelog
Install
npm install gracelog
How To Use
var gracelog = require('gracelog');
var logger = gracelog.create();
logger.verbose('something not so important to log.');
logger.sys('sys message to log...');
logger.debug('debug message to log...');
logger.trace('logging message with stack trace.');
logger.table([1,2,3,4]);
logger.info('something important');
logger.error('some error');
logger.fatal('this is bad...');
Configurations
.config(configData object)
If you do not call this function, the module will be running in its default configurations.
"stackdriver": <bool> // logger.error will use stackdriver format: https://cloud.google.com/error-reporting/docs/formatting-error-messages
"rotationType": <string> // define log file rotation type [year|month|day|hour]. Default is day
"useTimestamp": <bool> // if given true, the logging time will be in Unix timestamp instead of the server time
"bufferSize": <int> // log data buffer size in memory (bytes),
"bufferFlushInterval": <int> // log data buffer auto flush interval in milliseconds,
"oneFile": <boolean> // if true, file logging will be combined to one file for all logging levels. default is false
"file": "<log directory path> or false"
"compress": true or false, // if true, objects will be printed as a single line output
"console": true or false,
"remote": <object> or null/false,
"color": true or false,
"showHidden": true or false, // show hidden properties of object
"depth": <integer> // recursive depth of object
"level": [
"verbose",
"sys",
"debug",
"trace",
"info",
"warn",
"error",
"fatal",
]
};
gracelog.config(configData); var logger = gracelog.create();
### Configurations for log levels
There are 8 log levels in log module:
`verbose, sys, debug, trace, info, warn, error, fatal`
Example:
var configData = { "console": true, "color": true, "level": "info", "warn", "error", "fatal" };
gracelog.confoig(configData);
The above configurations will enable `info`, `warn`, `error`, and `fatal`.
The same configurations can be done by:
var configData = { "console": true, "color": true, "level": ">= info" };
gracelog.config(configData);
***
### Buffering
Log module buffers log data in memory before outputting into file/remote/console.
The defualt buffer size is 8kb (8129 bytes) and default bufferFlushInterval is 5 seconds (5000 ms).
***
#### file
If the path to file is set, gracelog will log into files.
Log files are auto-rotated by YYYY/MM/DD.
`"file": "path to log file directory" or false/null`
#### remote
If the configurations for `remote` logging is provided, gracelog sends log data via UDP protocol.
**Configurations**
var gracelog = require('gracelog'); var configData = { remote: { host: 'localhost', port: 8000 } }; gracelog.config(configData);
#### console
If set to true, gracelog will send log to stdout/stderr stream of your application's process.
Log module uses console object of node.js. This is a blocking operation. It is better to turn this option off in production.
`"console": true or false`
#### color
If set to true, gracelog will color log text.
Each log level has different color.
`"color": true or false`
#### showHidden
If set to true, gracelog will log hidden properties of objects.
`"showHidden": true or false`
#### depth
Decides how far log module should recursively display objects.
`"depth": <integer>`
#### level
Log module has 6 log levels. If set to false, gracelog will ignored that level.
Each log level can be configured.
"level": ">= verbose"
Or
"level": "verbose", "sys", "debug", "info", "warn", "error", "fatal"
Or
"level": { "verbose": , "sys": , "debug": , "info": , "warn": , "error": , "fatal": }
***
## Events: *output*
gracelog.on('output', function (address, name, level, messageObj) { // address: IP address of the server // name: the name that was set on gracelog.create() // level: verbose, debug, info, warn, error, or fatal // messageObj: { message, timestamp } });
***
### .clean(callback [function])
Cleans up logging data.
Useful to invoke this function before exiting an application process.
### .setPrefix(prefix [string])
Sets a prefix for each logging.
### .forceFlush(callback [function])
Forcefully flushes all buffered log data and write immediately.
### .create(logName [*string])
Returns an instance of logger object.
If `logName` is not provided, it will default to the file name (full path) of script calling it.
### .isEnabled(levelName [string])
Returns Boolean. If given log level name is enabled, it returns true.
***
## Logger Object
### API: *createTable*
Creates a table data for logging from a javascript object.
var tableData = logger.createTable(sqlResult); logger.debug(tableData);
### API: *verbose*
<pre>
void verbose(mixed data, [...])
</pre>
### API: *sys*
<pre>
void sys(mixed data, [...])
</pre>
### API: *debug*
<pre>
void debug(mixed data, [...])
</pre>
### API: *table*
<pre>
void table(mixed data, [...])
</pre>
Outputs log at `debug` level and converts objects into tables.
Example:
var test = { one: { name: 'testOne', value: 1, language: '日本語', }, two: { name: 'testTwo<2>', language: 'こんにちは', ident: '02' }, three: { name: 'testThree<3>', value: 3, language: 'ありがとうございます', list: 'A', 'B', 'C', map: { c: 'c', d: 'd' } }, five: { name: '魏民以夜光為怪石', language: 'chinese' }, six: { name: 'korean', value: -200, language: '해빛', list: 10, 20, 30 } }; logger.table(test);
The output of the above code would be:
**NOTE:** Spacing is off in this example, but the actual output would have correct spacing.
+---------+--------------------+-----------------------------------------+------------------------+--------+----------+-----------------+ | (index) | name | value | language | ident | list | map | +---------+--------------------+-----------------------------------------+------------------------+--------+----------+-----------------+ | one | "testOne" | 1 | "日本語" | | | | +---------+--------------------+-----------------------------------------+------------------------+--------+----------+-----------------+ | two | "testTwo<2>" | | "こんにちは" | "02" | | | +---------+--------------------+-----------------------------------------+------------------------+--------+----------+-----------------+ | three | "testThree<3>" | 3 | "ありがとうございます" | | A,B,C | object Object | +---------+--------------------+-----------------------------------------+------------------------+--------+----------+-----------------+ | five | "魏民以夜光為怪石" | | "chinese" | | | | +---------+--------------------+-----------------------------------------+------------------------+--------+----------+-----------------+ | six | "korean" | -200 | "해빛" | | 10,20,30 | | +---------+--------------------+-----------------------------------------+------------------------+--------+----------+-----------------+
### API: *trace*
`.trace()` outputs a stack trace for debugging.
### API: *info*
<pre>
void info(mixed data, [...])
</pre>
### API: *warn*
<pre>
void warn(mixed data, [...])
</pre>
### API: *warning*
Alias of warn
<pre>
void warning(mixed data, [...])
</pre>
### API: *error*
<pre>
void error(mixed data, [...])
</pre>
### API: *fatal*
<pre>
void fatal(mixed data, [...])
</pre>
***
5 years ago
5 years ago
5 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
7 years ago
7 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago