Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

logelas

Package Overview
Dependencies
Maintainers
1
Versions
46
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

logelas

latest
Source
npmnpm
Version
4.1.3
Version published
Maintainers
1
Created
Source

Logelas

Drawing

Quality Gate Status Bugs Maintainability Rating FOSSA Status

motivation

When we build large projects using modules and components, it is best to implement a logging abstraction rather than actual loging library bindings and dependecies, we can than aggregate the virtual loggers to log transports available at the installing application.

Here is a small example of a class decorated with LogClass decorator.

import { Logger, LogClass } from 'logelas'; // import logelas
const log = new Logger('test.log', 'test'); // create a new virtual logger

@LogClass(log) // provide the logger to the decorator
export class Controller {   
   public action1() {
       log.error(this, 'there is the rror log');
   }
}

Logger

create a file based logger

new Logger([filename], [debugSymbol])

@LogClass, @Log decorators

use @LogClass at the top of your class and @Log for every method you wish to log. logelas will create a log entry for every call to the method and for every value returned by it. the log file may look like this:

[2017-08-25T20:51:58.848Z] INFO100006 :: new Controller() 
[2017-08-25T20:52:02.504Z] INFO100001 :: Controller.action1 =>  
[2017-08-25T20:52:02.506Z] INFO100001 :: Controller.action1   a message from inside the method
[2017-08-25T20:52:02.506Z] INFO100002 :: Controller.action2 =>  
[2017-08-25T20:52:02.507Z] INFO100002 :: Controller.action2   a message from inside the method
[2017-08-25T20:52:02.507Z] INFO100003 :: Controller.action3 =>  
[2017-08-25T20:52:02.507Z] WARNIN100003 :: Controller.action3   a message from inside the method
[2017-08-25T20:52:02.507Z] INFO100004 :: Controller.action4 =>  
[2017-08-25T20:52:02.507Z] DEBUG  i 100004 :: Controller.action4   a message from inside the method
[2017-08-25T20:52:02.507Z] INFO100005 :: Controller.throws =>  
[2017-08-25T20:52:02.508Z] ERROR  × 100005 :: Controller.throws ##  my bad Error: my bad
    at Controller.throws (c:\Git_work\logelas\examples\class-log.js:33:16)
    at Controller.<anonymous> (c:\Git_work\logelas\src\loggerd.js:29:53)
    at Controller.action4 (c:\Git_work\logelas\examples\class-log.js:29:14)
    at Controller.<anonymous> (c:\Git_work\logelas\src\loggerd.js:29:53)
    at Controller.action3 (c:\Git_work\logelas\examples\class-log.js:25:21)
    at Controller.<anonymous> (c:\Git_work\logelas\src\loggerd.js:29:53)
    at Controller.action2 (c:\Git_work\logelas\examples\class-log.js:21:21)
    at Controller.<anonymous> (c:\Git_work\logelas\src\loggerd.js:29:53)
    at Controller.action1 (c:\Git_work\logelas\examples\class-log.js:17:21)
    at Controller.<anonymous> (c:\Git_work\logelas\src\loggerd.js:29:53)
[2017-08-25T20:52:02.508Z] INFO100004 :: Controller.action4 <=  4
[2017-08-25T20:52:02.508Z] INFO100003 :: Controller.action3 <=  8
[2017-08-25T20:52:02.508Z] INFO100002 :: Controller.action2 <=  16
[2017-08-25T20:52:02.508Z] INFO100001 :: Controller.action1 <=  32

Manual logging

some times we need to log something within the method logic. using the same logger as the @LogClass decorator we can easily emit log messages that will automatically log the class and method names and id.


logger.log(this, 'my custom log entry');
logger.debug(this, 'debug this please');
logger.info(this, 'just an info lo entry');
logger.error(this, 'huston we have a problem');
logger.warn(this, 'this is the last warning');

truncate()

use logger.truncate() to clear the log file (useful for testing and development stages)

License

FOSSA Status

Keywords

nodulus

FAQs

Package last updated on 04 Aug 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts