Ohm-Management - Projektarbeit B-ME
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

TODO.md 5.4KB

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