1.1.2-rc1 • Published 4 years ago

@langurama/log v1.1.2-rc1

Weekly downloads
-
License
MIT
Repository
github
Last release
4 years ago

@langurama/log

Build Coverage Version License

Due to the retardedness of some of the libraries not providing a simple human readable logging library, which can log to file and stdout/stderr, I had to tell someone to hold my beer so I could.

Contents.

Install

npm install --save-prod --save-exact @langurama/log

Usage

  • Terminal transport works in both Node.js and the browser.
  • File transport works only in Node.js.

\<LanguramaLog>

languramaLog(configuration)

  • configuration \<LanguramaConfiguration> | <LanguramaConfiguration[]> Default: LanguramaConfiguration
    • LanguramaConfiguration <LanguramaTerminalConfiguration | LanguramaFileConfiguration> Default: LanguramaTerminalConfiguration
      • LanguramaTerminalConfiguration \<Object> Only one per log instance.
        • type \<string> Valid values: terminal Required
        • level \<string> Valid values: error, warn, info, debug, trace Default: info
        • callee \<boolean> Default: true
        • chalk \<Chalk> Display logs in terminal in color using the Chalk module instance.
      • LanguramaFileConfiguration \<Object>
        • type \<string> Valid values: file Required
        • level \<string> Valid values: error, warn, info, debug, trace Default: info
        • path \<string> Path where log should be written to. Default: ./log/application.log
        • json \<boolean> Write to log file in JSON format. Default: false
  • Returns: \<LanguramaLog>

\<LanguramaLog>

error(...messages)

  • messages <string | undefined | null | boolean | number | bigint | Object | Symbol | Error> Writes to stderr.
  • Returns: \<undefined>

warn(...message)

  • messages <string | undefined | null | boolean | number | bigint | Object | Symbol | Error> Writes to stderr.
  • Returns: \<undefined>

info(...message)

  • messages <string | undefined | null | boolean | number | bigint | Object | Symbol | Error> Writes to stdout.
  • Returns: \<undefined>

debug(...message)

  • messages <string | undefined | null | boolean | number | bigint | Object | Symbol | Error> Writes to stdout.
  • Returns: \<undefined>

trace(...message)

  • messages <string | undefined | null | boolean | number | bigint | Object | Symbol | Error> Writes to stdout.
  • Returns: \<undefined>

Example

You may check the example/ directory for runnable example files.

Example usage:

import { default as languramaLog } from 'log';
import { default as chalk } from 'chalk'; // If you want to have colors in the terminal.

const log = languramaLog([
    {
        type: 'file',
        path: 'log/foo2.log',
        callee: false,
        level: 'error'
    },
    {
        type: 'file',
        path: 'log/foo1.log',
        level: 'warn',
        json: true
    },
    {
        type: 'terminal',
        level: 'debug',
        callee: true,
        chalk
    }
]);

log.info('herro', 1, 3.4, null, undefined, [1, 9], new Error('crap'), true, { wtf: 'k' });
log.error(new Error('F*ck'));
log.warn('This is a warning.');
log.info('God.');
log.debug('k.');
log.trace('This will not be displayed.');

Will result in the following.

Terminal:

2020-05-02 15:24:27 UTC+2   INFO herro 1 3.4 null undefined [1,9] Error: crap
    at Object.<anonymous> (/home/karl/dev/log/example/index.js:73:52)
    at Module._compile (internal/modules/cjs/loader.js:955:30)
    at Module._compile (/home/karl/dev/log/node_modules/pirates/lib/index.js:99:24)
    at Module._extensions..js (internal/modules/cjs/loader.js:991:10)
    at Object.newLoader [as .js] (/home/karl/dev/log/node_modules/pirates/lib/index.js:104:7)
    at Module.load (internal/modules/cjs/loader.js:811:32)
    at Function.Module._load (internal/modules/cjs/loader.js:723:14)
    at Function.Module.runMain (internal/modules/cjs/loader.js:1043:10)
    at Object.<anonymous> (/home/karl/dev/log/node_modules/@babel/node/lib/_babel-node.js:180:21)
    at Module._compile (internal/modules/cjs/loader.js:955:30) true {
    "wtf": "k"
} /home/karl/dev/log/example/index.js:73:5
2020-05-02 15:24:27 UTC+2  ERROR Error: F*ck
    at Object.<anonymous> (/home/karl/dev/log/example/index.js:74:11)
    at Module._compile (internal/modules/cjs/loader.js:955:30)
    at Module._compile (/home/karl/dev/log/node_modules/pirates/lib/index.js:99:24)
    at Module._extensions..js (internal/modules/cjs/loader.js:991:10)
    at Object.newLoader [as .js] (/home/karl/dev/log/node_modules/pirates/lib/index.js:104:7)
    at Module.load (internal/modules/cjs/loader.js:811:32)
    at Function.Module._load (internal/modules/cjs/loader.js:723:14)
    at Function.Module.runMain (internal/modules/cjs/loader.js:1043:10)
    at Object.<anonymous> (/home/karl/dev/log/node_modules/@babel/node/lib/_babel-node.js:180:21)
    at Module._compile (internal/modules/cjs/loader.js:955:30) /home/karl/dev/log/example/index.js:74:5
2020-05-02 15:24:27 UTC+2   WARN This is a warning. /home/karl/dev/log/example/index.js:75:5
2020-05-02 15:24:27 UTC+2   INFO God. /home/karl/dev/log/example/index.js:76:5
2020-05-02 15:24:27 UTC+2  DEBUG k. /home/karl/dev/log/example/index.js:77:5

File log/foo1.log:

2020-05-02 15:56:39 UTC+2 ERROR Error: F*ck
    at Object.<anonymous> (/home/karl/dev/log/example/index.js:74:11)
    at Module._compile (internal/modules/cjs/loader.js:955:30)
    at Module._compile (/home/karl/dev/log/node_modules/pirates/lib/index.js:99:24)
    at Module._extensions..js (internal/modules/cjs/loader.js:991:10)
    at Object.newLoader [as .js] (/home/karl/dev/log/node_modules/pirates/lib/index.js:104:7)
    at Module.load (internal/modules/cjs/loader.js:811:32)
    at Function.Module._load (internal/modules/cjs/loader.js:723:14)
    at Function.Module.runMain (internal/modules/cjs/loader.js:1043:10)
    at Object.<anonymous> (/home/karl/dev/log/node_modules/@babel/node/lib/_babel-node.js:180:21)
    at Module._compile (internal/modules/cjs/loader.js:955:30)

File log/foo2.log:

{"timestamp":"2020-05-02 15:56:39 UTC+2","level":"ERROR","message":"Error: F*ck\n    at Object.<anonymous> (/home/karl/dev/log/example/index.js:74:11)\n    at Module._compile (internal/modules/cjs/loader.js:955:30)\n    at Module._compile (/home/karl/dev/log/node_modules/pirates/lib/index.js:99:24)\n    at Module._extensions..js (internal/modules/cjs/loader.js:991:10)\n    at Object.newLoader [as .js] (/home/karl/dev/log/node_modules/pirates/lib/index.js:104:7)\n    at Module.load (internal/modules/cjs/loader.js:811:32)\n    at Function.Module._load (internal/modules/cjs/loader.js:723:14)\n    at Function.Module.runMain (internal/modules/cjs/loader.js:1043:10)\n    at Object.<anonymous> (/home/karl/dev/log/node_modules/@babel/node/lib/_babel-node.js:180:21)\n    at Module._compile (internal/modules/cjs/loader.js:955:30)"}
{"timestamp":"2020-05-02 15:56:39 UTC+2","level":"WARN","message":"This is a warning."}

How it works

This package transpiles code to CommonJS via Babel targeted at the current Node.js LTS version. To use this in the browser you will need to transpile it from CommonJS to your targeted browser(s).

1.1.2-rc1

4 years ago

1.1.1-rc5

4 years ago

1.1.1-rc4

4 years ago

1.1.1-rc3

4 years ago

1.1.1-rc2

4 years ago

1.1.1-rc1

4 years ago

1.1.0-rc1

4 years ago

1.0.1

4 years ago

1.0.1-rc4

4 years ago

1.0.1-rc3

4 years ago

1.0.1-rc2

4 years ago

1.0.1-rc

4 years ago

1.0.0

4 years ago