Norwegian Parcel Mail

    @studimax/logger
    TypeScript icon, indicating that this package has built-in type declarations

    1.0.1 • Public • Published

    @studimax/logger

    npm Code: TypeScript Made By: StudiMax

    A logger system with configurable transporters.

    Installation

    npm install @studimax/logger
    # or
    yarn add @studimax/logger

    Description

    The logger system is a simple and flexible logging system. It is designed to be used in a modular way, so that you can easily add new transports.

    2021-12-22 13:23:58.47	<error>	Logger.spec.ts:5	(Object.<anonymous>)    log1 {"hello":"world"}
    

    Usage

    import Logger from '@studimax/logger';
    
    const logger = Logger({
        transports: [Logger.TRANSPORTS.CONSOLE_LOG(), Logger.TRANSPORTS.DATED_LOG()],
        levels: {
            extra: {
                color: '#ff0000',
                level: 1,
            },
        },
    });
    logger.info('Hello World!');
    logger.extra('Extra!');

    Logger default options

    import Logger from '@studimax/logger';
    Logger({
        format: '{timestamp}\t<{level.name}>\t{file}:{line}\t({method})\t{message} {metadata}', //see format docs
        dateFormat: 'YYYY-MM-DD HH:mm:ss.SS', // use fecha to format date
        logFolder: 'logs',
        logHistory: 100, // keep 100 logs
        transports: [], // by default, no transports
        transportTimeout: 1000, // timeout for transports
        levels: {}, // by default, use default levels but can be overridden
    })

    Default Levels

    The color is used to display the level name in the console.

    Description Level Tag Color
    Trace 0 trace #0099ff #0099ff
    Debug 1 debug #00cc99 #00cc99
    Info 2 info #00cc30 #00cc30
    Warn 3 warn #ffcc00 #ffcc00
    Error 4 error #ff0000 #ff0000
    Fatal 5 fatal #a70000 #a70000

    Custom Levels

    const levels = {
        myCustomTag: {
            color: '#ff0000',
            level: 1
        }
    }

    Custom Format

    Format is a string that can contain the following placeholders:

    • {timestamp}: the timestamp of the log formatted with the dateFormat option
    • {level}: level object containing name, level and color
    • {file}: the file where the log was called
    • {line}: the line where the log was called
    • {method}: the method where the log was called
    • {message}: the message of the log
    • {metadata}: the metadata object passed to the log

    You can use the dot notation . to access nested properties. For example, {metadata.foo} will access the foo property of the metadata object. See @studimax/ts package for more information.

    Transporters

    This package provides the following transporters:

    CONSOLE_LOG

    This transporter logs to the console.

    DATED_LOG

    This transporter logs to a file with a date prefix. The file is created if it doesn't exist. This transporter implements the FIFO strategy, first log is the first to be written.

    NAMED_LOG

    This transporter logs to a file with a name prefix.

    Custom Transporter

    You can create your own transporters by creating an async function.

    async function MyCustomTransporter(data: Data, options: TransportOptions) {
        if(await options.transportReady){
            // do something when the same previous logs transport has been resolved.
            console.log(data.message);
        }
    }

    TransportOptions extends LoggerOptions ans add more properties:

    • ready: a promise that is resolved when all previous logs transports have been resolved.
    • transportReady: a promise that is resolved when the same previous logs transport has been resolved.

    Install

    npm i @studimax/logger

    DownloadsWeekly Downloads

    2

    Version

    1.0.1

    License

    MIT

    Unpacked Size

    41.9 kB

    Total Files

    34

    Last publish

    Collaborators

    • maxscharwath