root / HServer / 00.Server / 00.Program / node_modules / bunyan / TODO.md
이력 | 보기 | 이력해설 | 다운로드 (5.39 KB)
1 |
# 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 |