Awesome
Studio Log Format
🎩 Transform streams to format Studio Log streams
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 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.
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
<div align="center">Made with ❤️ on 🌍</div>