birnam
v1.0.0
Published
Component-based logging for interplanetary applications
Readme
birnam
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: bafyfooWhat'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 birnamBrowser <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
- Apache 2.0, (LICENSE-APACHE / http://www.apache.org/licenses/LICENSE-2.0)
- MIT (LICENSE-MIT / http://opensource.org/licenses/MIT)
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.
