Studio Log Format
This module also works in the browser using a naive
stream
shim for small Browserify bundles.
Usage
const FancyFormat = require('@studio/log-format/fancy');
require('@studio/log')
.pipe(new FancyFormat())
.pipe(process.stdout);
Install
❯ npm i @studio/log-format
API
Transform Streams
-
@studio/log-format/basic
: Basic formatting with ISO dates and no colors. -
@studio/log-format/fancy
: Colored output with localized dates. This is the default formatter when using theemojilog
CLI.
Some advanced formatting is applied by naming conventions on top level
properties of the data
object.
-
ts
or prefixts_
formats a timestamp. -
ms
or prefixms_
formats a millisecond value. -
bytes
or prefixbytes_
formats a byte value.
These options can be passed to the bundled format transforms:
-
ts: false
hide timestamps -
topic: false
hide topics -
ns: false
hide namespaces -
data: false
hide data -
stack: style
with these stack styles:-
false
: hide the error entirely -
message
only show the error message -
peek
show the message and the first line of the trace (default) -
full
show the message and the full trace
-
The stack
option is also used to format the "cause"
, if present.
Writable Streams
-
@studio/log-format/console
: Console logger, making use of theconsole.log
default formatting. This format has no options.
Custom Format Transforms
You can also write your own format transforms by implementing a node transform
streams in writableObjectMode
. Here is an example transform
implementation, similar to the ndjson transform for Studio Log:
const { Transform } = require('stream');
const ndjson = new Transform({
writableObjectMode: true,
transform(entry, enc, callback) {
const str = JSON.stringify(entry);
callback(null, `${str}\n`);
}
});
Related modules
-
👻 Studio Log logs ndjson to an output stream -
🏷 Studio Log Topics defines the topics used by Studio Log -
🌈 Studio Emojilog is a CLI to pretty print the Studio Log ndjson with emoji -
📦 Studio Changes is used to create the changelog for this module.
License
MIT
Made with ❤️ on 🌍