npm.io
1.0.0 • Published 4 months ago

birnam

Licence
Apache-2.0 OR MIT
Version
1.0.0
Deps
2
Size
113 kB
Vulns
0
Weekly
0

birnam

codecov CI

Component-based logging for interplanetary applications

About

A logger based on weald that contains custom formatters binary data in common multibase formats - base58btc, base32, base36 and base64 - all other logged objects (CIDs, Multiaddrs, etc) should contain a suitable toString() method.

Example

import { logger } from 'birnam'

const log = logger('helia:my:component:name')

try {
  // an operation
  log('something happened: %s', 'it was ok')
} catch (err) {
  log.error('something bad happened: %e', err)
}

log('with this peer: %s', {
  toString () {
    return '12D3Foo'
  }
})
log('and this base58btc: %z', Uint8Array.from([0, 1, 2, 3]))
log('and this base32: %b', Uint8Array.from([4, 5, 6, 7]))
$ DEBUG=helia:* node index.js
something happened: it was ok
something bad happened: <stack trace>
with this peer: 12D3Foo
with this base58btc: zQmfoo
with this base32: bafyfoo

What's in a name?

Great Birnam Wood is referenced in Shakespeare's Scottish play as part of the prophecy told by the three witches. The woods themselves have largely been cut down since, and the trees (presumably) turned into logs.

Install

$ npm i birnam

Browser <script> tag

Loading this module through a script tag will make its exports available as Birnam in the global namespace.

<script src="https://unpkg.com/birnam/dist/index.min.js"></script>

API Docs

License

Licensed under either of

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.