corie-logger
中文文档
Note: The Logging Framework for JavaScript with log4j configuration writes lines to a file that roll over when they reach a maximum size, or a date/time. You could provide any custom Appenders to write log messages wherever you need, it currently support logging messages to console and files.
Table of contents
Installation
Node >= 8
npm install --save corie-logger # or cnpm install --save corie-logger
Usage
const configure getLogger = ; // './conf/corie-logger.json' will become to// `${process.cwd()}/conf/corie-logger.json`; const appLogger = ; // logging for log4jappLogger;appLogger;appLogger;appLogger;appLogger;appLogger; // changed levelsappLogger; // logging for syslogappLogger;appLogger;appLogger;appLogger;appLogger;appLogger;appLogger;appLogger; // The first optional param is levelappLogger;appLogger;appLogger;
Custom Appender
Must implement functions append and destroy
'use strict'; const AbstractAppender = ; { supername options config; // options - current appender options // config - global config info // ... // codes // ... } { // options.category - logger name // options.level - logger level // options.timestamp // codes } { // destroy this appender } moduleexports = CustomAppender;
Custom Layout
'use strict'; module { return { // options.category logger name // options.level logger level // options.timestamp // return formal args };};
API
corie-logger
Global API for configure( opts )
Param | Type | Description |
---|---|---|
[ opts ] | Object |
a JSON Object |
[ opts ] | String |
a JSON file path |
destroy()
destroy internal cache
getLogger( name )
Param | Type | Description |
---|---|---|
[ name ] | String |
get a Logger instance |
addLayout( name, serializerGenerator )
Param | Type | Description |
---|---|---|
[ name ] | String |
a name of serializer generator function |
[ serializerGenerator ] | Function |
a serializer generator function |
addAppender( name, Appender )
Param | Type | Description |
---|---|---|
[ name ] | String |
a name of custom Appender |
[ Appender ] | Class |
a custom Appender |
API for Logger instance
setLevels
Param | Type | Description |
---|---|---|
[ levels ] | String |
provide log4j and syslog currently |
[ levels ] | Array |
custom levels |
setLevel
Param | Type | Description |
---|---|---|
[ levels ] | String |
logger level |
Configuration
appenders
type
- "file", "dateFile" or "console". "file" means to log messages to a file; "dateFile" means to log messages to a file with datetime filename; "console" means to log messages to console.layout
- optional. "basic", "json" or an object(default: "basic"). "json" means to format a message to a JSON string.fileName
- when type is "dateFile", the date pattern must be configured in the file name.maxLogSize
- optional, use case insensitive k、m、g as unitnumBackups
- optional, "10d" can be configured that means to back up logs for 10 dayslevel
- optional, log level
categories
appenders
- configure different appenderslevel
- log levellevels
- log levels
level - log level
levels - "log4j", "syslog", Array. log levels
"appenders": "log1": // getLogger('log1') "type": "file" // log messages to a file "layout": "json" // optional, not configured or json, or an object "fileName": "./logs/app.log" // log file path "maxLogSize": "10M" // optional, use case insensitive k、m、g as unit "numBackups": 10 // optional, "10d" can be configured that means to back up logs for 10 days "log2": // getLogger('log2') "type": "dateFile" // log messages to a file with a datetime file name "fileName": "./logs/log1-%d{YYYY-MM-DD}.log" // log file path with a datetime pattern "log3": // getLogger('log3') "type": "console" // log messages to console "layout": "datePattern": null // default: YYYY-MM-DD hh:mm:ss.SSS Z. null means ISOString formatter "categories": "default": "appenders": "app" "level": "ERROR" "console": "appenders": "log2" "level": "INFO" "file": "appenders": "app" "log2" "level": "INFO" "dateFile": "appenders": "log1" "log2" "level": "INFO" "level": "ERROR" // optional, log lovel "levels": "syslog" // optional(default: "log4j"), "log4j", "syslog"
Examples
Release History
3.1.0
- Fix bugs about throwing a Error before calling function
configure
- Removed caches after calling function
getConsole
- Changed property name
filename
tofileName
,filename
can be compatible - Property
pattern
have been removed in propertyappenders
- Changed property name
pattern
todatePattern
in propertylayout
3.1.1
- Added function setLevel on the Logger instance
- Removed the RedisAppender
- Fix bugs about using custom Appender
3.1.2
- Optimized codes
3.1.3
- Supported to change levels for all category of logger
- Supported to change level for all category of logger
3.2.0
- Supported to change levels for a category of logger
- added jest
3.2.1
- extends corie-console
3.2.2
- added extra options to append function for Appender
3.2.3
- updated tests and package.json
3.2.4
- added stdout and stderr Appender
3.2.5
- extra options will be passed to each Appender
3.2.6
- removed type "dateFile"
3.2.7
- fixed
...extraOptions
not being supported in node 8.2.1
3.3.1
- updated plugins
3.3.2
- updated plugins