Logging Service with Extensible Logger Library for Developers
The library provides logging service with Extensible Logger. The Extensible Logger provides general functions used to extend a logger module.
The library provides LoggerService class. The LoggerService is used to create logger instances.
There are two ways to create logger instances.
- Use instance function, configure()
- Use class function, LoggerService.fromFile()
In JavaScript:
const ArchDevLogger = require('archdevlogger').ArchDevLogger;
const service = new ArchDevLogger.Services.LoggerService();
In TypeScript:
import { ArchDevLogger } from "archdevlogger";
const service = new ArchDevLogger.Services.LoggerService();
- useInstanceCache (default: true) - defines whether it uses cache for logger instances
const options = {
useInstanceCache: true
};
const service = new ArchDevLogger.Services.LoggerService(options);
// in config.js
const config = {
useInstanceCache: true,
defaultLogger: {
logger: 'AppLogger',
properties: {}
},
modules: [
{
logger: 'AppLogger',
module: {
type: 'module'
resource: 'archdevloggerwinston'
}
}
],
setups: [
{
name: 'TestModule',
type: 'Module',
logger: 'AppLogger',
properties: {}
}
]
};
module.exports = config;
// in application.js
const service = ArchDevLogger.Services.LoggerService.fromFile('./config.js');
The service provides functionalities:
Logger Service defines Default Logger by logger and properties.
- logger: string - defines the name of default logger module
- properties: any - defines the properties of default logger instance
service.setDefaultLogger(logger, properties);
Logger Service defines Logger Modules by logger and logger module.
- logger: string - defines the name of logger module
- LoggerModule: any - defines the module of logger
service.setLoggerModule(logger, LoggerModule);
Logger Service defines Logger Setups by name, type, logger, and properties.
- name: string - defines the name of logger instance
- type: string - defines the type of logger instance
- logger: string - defines the name of logger module
- properties: any - defines the properties of logger instance
service.setLoggerSetup(name, type, logger, properties);
Logger Service resolves Logger Instances by name and type.
- name: string - defines the name of logger instance
- type: string - defines the type of logger instance
service.resolveLogger(name, type);
The service maps name and type to get logger and properties that are defined with Logger Setup. The logger is mapped to LoggerModule.