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 |