mirror of
				https://github.com/Unleash/unleash.git
				synced 2025-10-27 11:02:16 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			52 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 'use strict';
 | |
| 
 | |
| const log4js = require('log4js');
 | |
| 
 | |
| let loggerProvider = getDefaultLogProvider();
 | |
| 
 | |
| module.exports = exports = function getLogger(name) {
 | |
|     return loggerProvider(name);
 | |
| };
 | |
| 
 | |
| exports.setLoggerProvider = function setLoggerProvider(provider) {
 | |
|     validate(typeof provider == 'function', 'Provider needs to be a function');
 | |
| 
 | |
|     const logger = provider('unleash:logger');
 | |
| 
 | |
|     validate(typeof logger.debug == 'function', 'Logger must implement debug');
 | |
|     validate(typeof logger.info == 'function', 'Logger must implement info');
 | |
|     validate(typeof logger.warn == 'function', 'Logger must implement warn');
 | |
|     validate(typeof logger.error == 'function', 'Logger must implement error');
 | |
| 
 | |
|     loggerProvider = provider;
 | |
|     logger.info('Custom Logger Provider initalized.');
 | |
| };
 | |
| 
 | |
| function getDefaultLogProvider() {
 | |
|     let level;
 | |
|     if (process.env.NODE_ENV === 'production') {
 | |
|         level = log4js.levels.ERROR;
 | |
|     } else if (process.env.NODE_ENV === 'test') {
 | |
|         level = log4js.levels.FATAL;
 | |
|     } else {
 | |
|         level = log4js.levels.DEBUG;
 | |
|     }
 | |
| 
 | |
|     log4js.configure({
 | |
|         appenders: {
 | |
|             console: { type: 'console' },
 | |
|         },
 | |
|         categories: {
 | |
|             default: { appenders: ['console'], level },
 | |
|         },
 | |
|     });
 | |
| 
 | |
|     return log4js.getLogger;
 | |
| }
 | |
| 
 | |
| function validate(isValid, msg) {
 | |
|     if (!isValid) {
 | |
|         throw new TypeError(msg);
 | |
|     }
 | |
| }
 |