You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					48 lines
				
				1.0 KiB
			
		
		
			
		
	
	
					48 lines
				
				1.0 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								# abstract-logging
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								This module provides an interface for modules to include so that they can
							 | 
						||
| 
								 | 
							
								support logging via an external logger that conforms to the standard Log4j
							 | 
						||
| 
								 | 
							
								interface. One such logger is [Pino](https://npm.im/pino). This module
							 | 
						||
| 
								 | 
							
								is intended for modules that are meant to be used by other modules.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Example:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```js
							 | 
						||
| 
								 | 
							
								'use strict'
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function AwesomeLibrary (options) {
							 | 
						||
| 
								 | 
							
								  this.log = (options.logger) ? options.logger : require('abstract-logging')
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								AwesomeLibrary.prototype.coolMethod = function () {
							 | 
						||
| 
								 | 
							
								  this.log.trace('AwesomeLibrary.coolMethod was invoked')
							 | 
						||
| 
								 | 
							
								  return {}
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								module.exports = AwesomeLibrary
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Interface
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Available methods:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								+ `fatal`
							 | 
						||
| 
								 | 
							
								+ `error`
							 | 
						||
| 
								 | 
							
								+ `warn`
							 | 
						||
| 
								 | 
							
								+ `info`
							 | 
						||
| 
								 | 
							
								+ `debug`
							 | 
						||
| 
								 | 
							
								+ `trace`
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								All methods are no operation functions.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Some loggers, like [Pino](https://getpino.io/), implement a `child()` method. This method can be easily added to an `abstract-logging` instance when stubbing out such loggers:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```js
							 | 
						||
| 
								 | 
							
								const logger = require('abstract-logging')
							 | 
						||
| 
								 | 
							
								logger.child = () => logger
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## License
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[MIT License](http://jsumners.mit-license.org/)
							 |