root / HServer / 00.Server / 00.Program / node_modules / bunyan / TODO.md
이력 | 보기 | 이력해설 | 다운로드 (5.39 KB)
| 1 | 39 | HKM | # higher prio | 
|---|---|---|---|
| 2 | |||
| 3 | - `bunyan` (without redir) ^C should stop, doesn't since recent change | ||
| 4 | - man page for the bunyan CLI (refer to it in the readme) | ||
| 5 | - perhaps wait for a bunyan new version with deps, and use dashdash | ||
| 6 | with a (vapour) man page generator | ||
| 7 | |||
| 8 | # v2 | ||
| 9 | |||
| 10 | - ^C fix | ||
| 11 | - node-exeunt | ||
| 12 | - `createLogger(<config-and-fields>, <fields>)` changes (#460) | ||
| 13 | - see section below | ||
| 14 | - the dtrace-provider thing (#487) | ||
| 15 | TODO: answer Cody email | ||
| 16 | - use package.json version for VERSION | ||
| 17 | - use deps | ||
| 18 | - dashdash | ||
| 19 | - assert-plus? | ||
| 20 | - verror? | ||
| 21 | - break out to multiple files | ||
| 22 | - want to work through PRs before that, so don't just break them all | ||
| 23 | - TODO: a quick pass through tickets and pulls for other things to include | ||
| 24 | - get ticket refs for the above, if any | ||
| 25 | - formatters: read up again on `glp master..1.x` | ||
| 26 | - support for customer formatters | ||
| 27 | - for the CLI as well? How? ~/.bunyanrc? | ||
| 28 | |||
| 29 | |||
| 30 | # changes to ctor and log.child to separate fields from config | ||
| 31 | |||
| 32 | <https://github.com/trentm/node-bunyan/issues/460> | ||
| 33 | |||
| 34 | Current: | ||
| 35 | |||
| 36 | createLogger(<config-and-fields>) | ||
| 37 | log.child(<config-and-fields>, <just-fields-bool>) | ||
| 38 | |||
| 39 | Could be: | ||
| 40 | |||
| 41 | createLogger(<config-and-fields>, <fields>) | ||
| 42 | log.child(<config-and-fields>, <fields>) | ||
| 43 | # Still support: log.child(<config-and-fields>, <just-fields-bool>) | ||
| 44 | |||
| 45 | Pros: Compat issues are minimal: a change is only required if there is a | ||
| 46 | collision with used field and a new config var name. | ||
| 47 | Cons: A *slight* con is that my guess is the common usage of child is | ||
| 48 | `log.child(<fields>)`, so the more future-proof common usage becomes: | ||
| 49 | |||
| 50 | log.child(null, <fields>) | ||
| 51 | |||
| 52 | That's not too bad. It is clearer at least than: | ||
| 53 | |||
| 54 | log.child(<fields>, true) | ||
| 55 | |||
| 56 | TODO: | ||
| 57 | |||
| 58 | - is there a ticket for this work already? | ||
| 59 | - make the change | ||
| 60 | - do a migration guide? i.e. provide the grep commands to find all | ||
| 61 | possible calls to inspect. E.g. if don't have `rg logUndefined` in your | ||
| 62 | code, then you are fine. And one time future-proofing via changing | ||
| 63 | to fields in the *second* arg. | ||
| 64 | - list of issues/pulls that wanted to add new config fields | ||
| 65 | |||
| 66 | |||
| 67 | |||
| 68 | # docs | ||
| 69 | |||
| 70 | - document log.addStream() and log.addSerializers() | ||
| 71 | |||
| 72 | |||
| 73 | # someday/maybe | ||
| 74 | |||
| 75 | - 2.0 (?) with `v: 1` in log records. Fwd/bwd compat in `bunyan` CLI | ||
| 76 | - `tail -f`-like support | ||
| 77 | - full-on docs | ||
| 78 | - better examples/ | ||
| 79 | - better coloring | ||
| 80 | - look at pino (bunyan style, perf benefits) | ||
| 81 | - would be exciting to have bunyan support in http://lnav.org/ if that | ||
| 82 | made sense | ||
| 83 | - "template" support for 'rotating-file' stream to get dated rolled files | ||
| 84 | - "all" or "off" levels? log4j? logging.py? | ||
| 85 | logging.py has NOTSET === 0. I think that is only needed/used for | ||
| 86 | multi-level hierarchical effective level. | ||
| 87 | - buffered writes to increase speed: | ||
| 88 | - I'd start with a tools/timeoutput.js for some numbers to compare | ||
| 89 | before/after. Sustained high output to a file. | ||
| 90 | - perhaps this would be a "buffered: true" option on the stream object | ||
| 91 | - then wrap the "stream" with a local class that handles the buffering | ||
| 92 |     - to finish this, need the 'log.close' and `process.on('exit', ...)`
 | ||
| 93 | work that Trent has started. | ||
| 94 | - "canWrite" handling for full streams. Need to buffer a la log4js | ||
| 95 | - test file log with logadm rotation: does it handle that? | ||
| 96 | - test suite: | ||
| 97 | - test for a cloned logger double-`stream.end()` causing problems. | ||
| 98 | Perhaps the "closeOnExit" for existing streams should be false for | ||
| 99 | clones. | ||
| 100 | - test that a `log.clone(...)` adding a new field matching a serializer | ||
| 101 | works *and* that an existing field in the parent is not *re-serialized*. | ||
| 102 | - split out `bunyan` cli to a "bunyan" or "bunyan-reader" or "node-bunyan-reader" | ||
| 103 | as the basis for tools to consume bunyan logs. It can grow indep of node-bunyan | ||
| 104 | for generating the logs. | ||
| 105 | It would take a Bunyan log record object and be expected to emit it. | ||
| 106 | |||
| 107 | node-bunyan-reader | ||
| 108 | .createReadStream(path, [options]) ? | ||
| 109 | |||
| 110 | - coloring bug: in less the indented extra info lines only have the first | ||
| 111 | line colored. Do we need the ANSI char on *each* line? That'll be | ||
| 112 | slower. | ||
| 113 | - document "well-known" keys from bunyan CLI p.o.v.. Add "client_req". | ||
| 114 | - More `bunyan` output formats and filtering features. | ||
| 115 | - Think about a bunyan dashboard that supports organizing and viewing logs | ||
| 116 | from multiple hosts and services. | ||
| 117 | - doc the restify RequestCaptureStream usage of RingBuffer. Great example. | ||
| 118 | - A vim plugin (a la http://vim.cybermirror.org/runtime/autoload/zip.vim ?) to | ||
| 119 | allow browsing (read-only) a bunyan log in rendered form. | ||
| 120 | - Some speed comparisons with others to get a feel for Bunyan's speed. | ||
| 121 | - what about promoting 'latency' field and making that easier? | ||
| 122 | - `log.close` to close streams and shutdown and `this.closed` | ||
| 123 |   process.on('exit', log.close)
 | ||
| 124 | -> 'end' for the name | ||
| 125 | - bunyan cli: more layouts (http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/EnhancedPatternLayout.html) | ||
| 126 | Custom log formats (in config file? in '-f' arg) using printf or hogan.js | ||
| 127 | or whatever. Dap wants field width control for lining up. Hogan.js is | ||
| 128 | probably overkill for this. | ||
| 129 | - loggly example using raw streams, hook.io?, whatever. | ||
| 130 | - serializer support: | ||
| 131 | - restify-server.js example -> restifyReq ? or have `req` detect that. | ||
| 132 | That is nicer for the "use all standard ones". *Does* restify req | ||
| 133 | have anything special? | ||
| 134 | - differential HTTP *client* req/res with *server* req/res. | ||
| 135 | - statsd stream? http://codeascraft.etsy.com/2011/02/15/measure-anything-measure-everything/ | ||
| 136 | Think about it. | ||
| 137 | - web ui. Ideas: http://googlecloudplatform.blogspot.ca/2014/04/a-new-logs-viewer-for-google-cloud.html |