🎩 Transform streams to format Studio Log streams
This module also works in the browser using a naive
stream
shim for small Browserify bundles.
const FancyFormat = require('@studio/log-format/fancy');
require('@studio/log')
.pipe(new FancyFormat())
.pipe(process.stdout);
❯ npm i @studio/log-format
@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 timestampstopic: false
hide topicsns: false
hide namespacesdata: false
hide datastack: style
with these stack styles:false
: hide the error entirelymessage
only show the error messagepeek
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.
@studio/log-format/console
: Console logger, making use of theconsole.log
default formatting. This format has no options.
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`);
}
});
- 👻 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.
MIT
Made with ❤️ on 🌍