typespeed 2.0.6 → 2.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (184) hide show
  1. package/dist/core.decorator.js +1 -1
  2. package/dist/core.decorator.js.map +1 -1
  3. package/introduction/decorator/example-import.class.ts +6 -0
  4. package/introduction/decorator/main-app.ts +6 -0
  5. package/introduction/decorator/main-decorator.ts +108 -0
  6. package/introduction/decorator/main-import.ts +1 -0
  7. package/introduction/decorator/main-reflect.ts +25 -0
  8. package/introduction/web-services/db-init.ts +39 -0
  9. package/introduction/web-services/db-singleton.ts +59 -0
  10. package/introduction/web-services/http-if.ts +10 -0
  11. package/introduction/web-services/http-init.ts +6 -0
  12. package/introduction/web-services/http-router.ts +28 -0
  13. package/package.json +2 -2
  14. package/src/core.decorator.ts +1 -1
  15. package/test/node_modules/.package-lock.json +62 -0
  16. package/test/node_modules/@types/node/LICENSE +21 -0
  17. package/test/node_modules/@types/node/README.md +16 -0
  18. package/test/node_modules/@types/node/assert/strict.d.ts +8 -0
  19. package/test/node_modules/@types/node/assert.d.ts +961 -0
  20. package/test/node_modules/@types/node/async_hooks.d.ts +518 -0
  21. package/test/node_modules/@types/node/buffer.d.ts +2320 -0
  22. package/test/node_modules/@types/node/child_process.d.ts +1372 -0
  23. package/test/node_modules/@types/node/cluster.d.ts +410 -0
  24. package/test/node_modules/@types/node/console.d.ts +412 -0
  25. package/test/node_modules/@types/node/constants.d.ts +18 -0
  26. package/test/node_modules/@types/node/crypto.d.ts +3973 -0
  27. package/test/node_modules/@types/node/dgram.d.ts +545 -0
  28. package/test/node_modules/@types/node/diagnostics_channel.d.ts +192 -0
  29. package/test/node_modules/@types/node/dns/promises.d.ts +370 -0
  30. package/test/node_modules/@types/node/dns.d.ts +660 -0
  31. package/test/node_modules/@types/node/dom-events.d.ts +126 -0
  32. package/test/node_modules/@types/node/domain.d.ts +170 -0
  33. package/test/node_modules/@types/node/events.d.ts +682 -0
  34. package/test/node_modules/@types/node/fs/promises.d.ts +1159 -0
  35. package/test/node_modules/@types/node/fs.d.ts +3976 -0
  36. package/test/node_modules/@types/node/globals.d.ts +302 -0
  37. package/test/node_modules/@types/node/globals.global.d.ts +1 -0
  38. package/test/node_modules/@types/node/http.d.ts +1714 -0
  39. package/test/node_modules/@types/node/http2.d.ts +2133 -0
  40. package/test/node_modules/@types/node/https.d.ts +542 -0
  41. package/test/node_modules/@types/node/index.d.ts +134 -0
  42. package/test/node_modules/@types/node/inspector.d.ts +2741 -0
  43. package/test/node_modules/@types/node/module.d.ts +115 -0
  44. package/test/node_modules/@types/node/net.d.ts +883 -0
  45. package/test/node_modules/@types/node/os.d.ts +473 -0
  46. package/test/node_modules/@types/node/package.json +237 -0
  47. package/test/node_modules/@types/node/path.d.ts +191 -0
  48. package/test/node_modules/@types/node/perf_hooks.d.ts +625 -0
  49. package/test/node_modules/@types/node/process.d.ts +1488 -0
  50. package/test/node_modules/@types/node/punycode.d.ts +117 -0
  51. package/test/node_modules/@types/node/querystring.d.ts +131 -0
  52. package/test/node_modules/@types/node/readline/promises.d.ts +143 -0
  53. package/test/node_modules/@types/node/readline.d.ts +653 -0
  54. package/test/node_modules/@types/node/repl.d.ts +424 -0
  55. package/test/node_modules/@types/node/stream/consumers.d.ts +12 -0
  56. package/test/node_modules/@types/node/stream/promises.d.ts +42 -0
  57. package/test/node_modules/@types/node/stream/web.d.ts +330 -0
  58. package/test/node_modules/@types/node/stream.d.ts +1440 -0
  59. package/test/node_modules/@types/node/string_decoder.d.ts +67 -0
  60. package/test/node_modules/@types/node/test.d.ts +760 -0
  61. package/test/node_modules/@types/node/timers/promises.d.ts +93 -0
  62. package/test/node_modules/@types/node/timers.d.ts +101 -0
  63. package/test/node_modules/@types/node/tls.d.ts +1111 -0
  64. package/test/node_modules/@types/node/trace_events.d.ts +171 -0
  65. package/test/node_modules/@types/node/ts4.8/assert/strict.d.ts +8 -0
  66. package/test/node_modules/@types/node/ts4.8/assert.d.ts +961 -0
  67. package/test/node_modules/@types/node/ts4.8/async_hooks.d.ts +518 -0
  68. package/test/node_modules/@types/node/ts4.8/buffer.d.ts +2320 -0
  69. package/test/node_modules/@types/node/ts4.8/child_process.d.ts +1372 -0
  70. package/test/node_modules/@types/node/ts4.8/cluster.d.ts +410 -0
  71. package/test/node_modules/@types/node/ts4.8/console.d.ts +412 -0
  72. package/test/node_modules/@types/node/ts4.8/constants.d.ts +18 -0
  73. package/test/node_modules/@types/node/ts4.8/crypto.d.ts +3972 -0
  74. package/test/node_modules/@types/node/ts4.8/dgram.d.ts +545 -0
  75. package/test/node_modules/@types/node/ts4.8/diagnostics_channel.d.ts +192 -0
  76. package/test/node_modules/@types/node/ts4.8/dns/promises.d.ts +370 -0
  77. package/test/node_modules/@types/node/ts4.8/dns.d.ts +660 -0
  78. package/test/node_modules/@types/node/ts4.8/dom-events.d.ts +126 -0
  79. package/test/node_modules/@types/node/ts4.8/domain.d.ts +170 -0
  80. package/test/node_modules/@types/node/ts4.8/events.d.ts +682 -0
  81. package/test/node_modules/@types/node/ts4.8/fs/promises.d.ts +1138 -0
  82. package/test/node_modules/@types/node/ts4.8/fs.d.ts +3875 -0
  83. package/test/node_modules/@types/node/ts4.8/globals.d.ts +301 -0
  84. package/test/node_modules/@types/node/ts4.8/globals.global.d.ts +1 -0
  85. package/test/node_modules/@types/node/ts4.8/http.d.ts +1651 -0
  86. package/test/node_modules/@types/node/ts4.8/http2.d.ts +2133 -0
  87. package/test/node_modules/@types/node/ts4.8/https.d.ts +542 -0
  88. package/test/node_modules/@types/node/ts4.8/index.d.ts +88 -0
  89. package/test/node_modules/@types/node/ts4.8/inspector.d.ts +2741 -0
  90. package/test/node_modules/@types/node/ts4.8/module.d.ts +115 -0
  91. package/test/node_modules/@types/node/ts4.8/net.d.ts +883 -0
  92. package/test/node_modules/@types/node/ts4.8/os.d.ts +473 -0
  93. package/test/node_modules/@types/node/ts4.8/path.d.ts +191 -0
  94. package/test/node_modules/@types/node/ts4.8/perf_hooks.d.ts +625 -0
  95. package/test/node_modules/@types/node/ts4.8/process.d.ts +1488 -0
  96. package/test/node_modules/@types/node/ts4.8/punycode.d.ts +117 -0
  97. package/test/node_modules/@types/node/ts4.8/querystring.d.ts +131 -0
  98. package/test/node_modules/@types/node/ts4.8/readline/promises.d.ts +143 -0
  99. package/test/node_modules/@types/node/ts4.8/readline.d.ts +653 -0
  100. package/test/node_modules/@types/node/ts4.8/repl.d.ts +424 -0
  101. package/test/node_modules/@types/node/ts4.8/stream/consumers.d.ts +12 -0
  102. package/test/node_modules/@types/node/ts4.8/stream/promises.d.ts +42 -0
  103. package/test/node_modules/@types/node/ts4.8/stream/web.d.ts +330 -0
  104. package/test/node_modules/@types/node/ts4.8/stream.d.ts +1440 -0
  105. package/test/node_modules/@types/node/ts4.8/string_decoder.d.ts +67 -0
  106. package/test/node_modules/@types/node/ts4.8/test.d.ts +760 -0
  107. package/test/node_modules/@types/node/ts4.8/timers/promises.d.ts +93 -0
  108. package/test/node_modules/@types/node/ts4.8/timers.d.ts +94 -0
  109. package/test/node_modules/@types/node/ts4.8/tls.d.ts +1111 -0
  110. package/test/node_modules/@types/node/ts4.8/trace_events.d.ts +171 -0
  111. package/test/node_modules/@types/node/ts4.8/tty.d.ts +206 -0
  112. package/test/node_modules/@types/node/ts4.8/url.d.ts +902 -0
  113. package/test/node_modules/@types/node/ts4.8/util.d.ts +2017 -0
  114. package/test/node_modules/@types/node/ts4.8/v8.d.ts +541 -0
  115. package/test/node_modules/@types/node/ts4.8/vm.d.ts +644 -0
  116. package/test/node_modules/@types/node/ts4.8/wasi.d.ts +158 -0
  117. package/test/node_modules/@types/node/ts4.8/worker_threads.d.ts +695 -0
  118. package/test/node_modules/@types/node/ts4.8/zlib.d.ts +517 -0
  119. package/test/node_modules/@types/node/tty.d.ts +206 -0
  120. package/test/node_modules/@types/node/url.d.ts +902 -0
  121. package/test/node_modules/@types/node/util.d.ts +2017 -0
  122. package/test/node_modules/@types/node/v8.d.ts +541 -0
  123. package/test/node_modules/@types/node/vm.d.ts +644 -0
  124. package/test/node_modules/@types/node/wasi.d.ts +158 -0
  125. package/test/node_modules/@types/node/worker_threads.d.ts +695 -0
  126. package/test/node_modules/@types/node/zlib.d.ts +517 -0
  127. package/test/node_modules/colors/LICENSE +25 -0
  128. package/test/node_modules/colors/README.md +221 -0
  129. package/test/node_modules/colors/examples/normal-usage.js +82 -0
  130. package/test/node_modules/colors/examples/safe-string.js +79 -0
  131. package/test/node_modules/colors/index.d.ts +136 -0
  132. package/test/node_modules/colors/lib/colors.js +211 -0
  133. package/test/node_modules/colors/lib/custom/trap.js +46 -0
  134. package/test/node_modules/colors/lib/custom/zalgo.js +110 -0
  135. package/test/node_modules/colors/lib/extendStringPrototype.js +110 -0
  136. package/test/node_modules/colors/lib/index.js +13 -0
  137. package/test/node_modules/colors/lib/maps/america.js +10 -0
  138. package/test/node_modules/colors/lib/maps/rainbow.js +12 -0
  139. package/test/node_modules/colors/lib/maps/random.js +11 -0
  140. package/test/node_modules/colors/lib/maps/zebra.js +5 -0
  141. package/test/node_modules/colors/lib/styles.js +95 -0
  142. package/test/node_modules/colors/lib/system/has-flag.js +35 -0
  143. package/test/node_modules/colors/lib/system/supports-colors.js +151 -0
  144. package/test/node_modules/colors/package.json +45 -0
  145. package/test/node_modules/colors/safe.d.ts +48 -0
  146. package/test/node_modules/colors/safe.js +10 -0
  147. package/test/node_modules/colors/themes/generic-logging.js +12 -0
  148. package/test/node_modules/dateformat/LICENSE +20 -0
  149. package/test/node_modules/dateformat/Readme.md +204 -0
  150. package/test/node_modules/dateformat/lib/dateformat.js +1 -0
  151. package/test/node_modules/dateformat/package.json +38 -0
  152. package/test/node_modules/mkdirp/CHANGELOG.md +15 -0
  153. package/test/node_modules/mkdirp/LICENSE +21 -0
  154. package/test/node_modules/mkdirp/bin/cmd.js +68 -0
  155. package/test/node_modules/mkdirp/index.js +31 -0
  156. package/test/node_modules/mkdirp/lib/find-made.js +29 -0
  157. package/test/node_modules/mkdirp/lib/mkdirp-manual.js +64 -0
  158. package/test/node_modules/mkdirp/lib/mkdirp-native.js +39 -0
  159. package/test/node_modules/mkdirp/lib/opts-arg.js +23 -0
  160. package/test/node_modules/mkdirp/lib/path-arg.js +29 -0
  161. package/test/node_modules/mkdirp/lib/use-native.js +10 -0
  162. package/test/node_modules/mkdirp/package.json +44 -0
  163. package/test/node_modules/mkdirp/readme.markdown +266 -0
  164. package/test/node_modules/tinytim/.travis.yml +5 -0
  165. package/test/node_modules/tinytim/README.md +212 -0
  166. package/test/node_modules/tinytim/index.js +1 -0
  167. package/test/node_modules/tinytim/lib/index.js +55 -0
  168. package/test/node_modules/tinytim/lib/tinytim.js +50 -0
  169. package/test/node_modules/tinytim/package.json +24 -0
  170. package/test/node_modules/tinytim/test/files/html.tim +1 -0
  171. package/test/node_modules/tinytim/test/files/string.tim +1 -0
  172. package/test/node_modules/tinytim/test/files/string2.tim +1 -0
  173. package/test/node_modules/tinytim/test/render-file-replace.js +39 -0
  174. package/test/node_modules/tinytim/test/render-replace.js +94 -0
  175. package/test/node_modules/tinytim/test/tim-replace.js +95 -0
  176. package/test/node_modules/tracer/README.md +747 -0
  177. package/test/node_modules/tracer/lib/color_console.js +15 -0
  178. package/test/node_modules/tracer/lib/console.js +165 -0
  179. package/test/node_modules/tracer/lib/dailyfile.js +92 -0
  180. package/test/node_modules/tracer/lib/index.js +10 -0
  181. package/test/node_modules/tracer/lib/settings.js +25 -0
  182. package/test/node_modules/tracer/lib/utils.js +58 -0
  183. package/test/node_modules/tracer/package.json +53 -0
  184. package/test/node_modules/tracer/types/index.d.ts +189 -0
@@ -0,0 +1,747 @@
1
+ # tracer for node.js
2
+
3
+ [![NPM version](http://img.shields.io/npm/v/tracer.svg)](https://www.npmjs.org/package/tracer)
4
+ [![Build Status](https://secure.travis-ci.org/baryon/tracer.png)](http://travis-ci.org/baryon/tracer)
5
+
6
+ A powerful and customizable logging library for node.js.
7
+
8
+ ===========
9
+
10
+ ## Features
11
+
12
+ ---
13
+
14
+ - print log messages with timestamp, file name, method name, line number, path or call stack
15
+ - be customized output format with micro-template and timestamp format
16
+ - support user-defined logging levels
17
+ - add easily any transport
18
+ - support filter functions, so print statements in full color and font (color console)
19
+
20
+ ## Install
21
+
22
+ ---
23
+
24
+ ```javascript
25
+ npm install tracer --save
26
+ ```
27
+
28
+ ## Usage
29
+
30
+ Add to your code:
31
+
32
+ Simple Console
33
+
34
+ ```javascript
35
+ var logger = require('tracer').console()
36
+ ```
37
+
38
+ Color Console
39
+
40
+ ```javascript
41
+ var logger = require('tracer').colorConsole()
42
+ ```
43
+
44
+ Set Output Level
45
+
46
+ ```javascript
47
+ var logger = require('tracer').colorConsole({ level: 'warn' })
48
+ ```
49
+
50
+ ## Simple Example
51
+
52
+ ### Simple Console
53
+
54
+ ```javascript
55
+ var logger = require('tracer').console();
56
+
57
+ logger.log('hello');
58
+ logger.trace('hello', 'world');
59
+ logger.debug('hello %s', 'world', 123);
60
+ logger.info('hello %s %d', 'world', 123, {foo:'bar'});
61
+ logger.warn('hello %s %d %j', 'world', 123, {foo:'bar'});
62
+ logger.error('hello %s %d %j', 'world', 123, {foo:'bar'}, [1, 2, 3, 4], Object);
63
+
64
+ $ node example/console.js
65
+ 2012-03-02T13:35:22.83Z <log> console.js:3 (Object.<anonymous>) hello
66
+ 2012-03-02T13:35:22.85Z <trace> console.js:4 (Object.<anonymous>) hello world
67
+ 2012-03-02T13:35:22.85Z <debug> console.js:5 (Object.<anonymous>) hello world 123
68
+ 2012-03-02T13:35:22.85Z <info> console.js:6 (Object.<anonymous>) hello world 123 { foo: 'bar' }
69
+ 2012-03-02T13:35:22.85Z <warn> console.js:7 (Object.<anonymous>) hello world 123 {"foo":"bar"}
70
+ 2012-03-02T13:35:22.85Z <error> console.js:8 (Object.<anonymous>) hello world 123 {"foo":"bar"} [ 1, 2, 3, 4 ] function Object() { [native code] }
71
+ ```
72
+
73
+ ### Color Console
74
+
75
+ ```javascript
76
+ var logger = require('tracer').colorConsole()
77
+
78
+ logger.log('hello')
79
+ logger.trace('hello', 'world')
80
+ logger.debug('hello %s', 'world', 123)
81
+ logger.info('hello %s %d', 'world', 123, { foo: 'bar' })
82
+ logger.warn('hello %s %d %j', 'world', 123, { foo: 'bar' })
83
+ logger.error(
84
+ 'hello %s %d %j',
85
+ 'world',
86
+ 123,
87
+ { foo: 'bar' },
88
+ [1, 2, 3, 4],
89
+ Object
90
+ )
91
+ ```
92
+
93
+ ### Daily Log
94
+
95
+ ```javascript
96
+ var logger = require('tracer').dailyfile({
97
+ root: '.',
98
+ maxLogFiles: 10,
99
+ allLogsFileName: 'myAppName'
100
+ })
101
+
102
+ logger.log('hello')
103
+ logger.trace('hello', 'world')
104
+ logger.debug('hello %s', 'world', 123)
105
+ logger.info('hello %s %d', 'world', 123, { foo: 'bar' })
106
+ logger.warn('hello %s %d %j', 'world', 123, { foo: 'bar' })
107
+ logger.error(
108
+ 'hello %s %d %j',
109
+ 'world',
110
+ 123,
111
+ { foo: 'bar' },
112
+ [1, 2, 3, 4],
113
+ Object
114
+ )
115
+ ```
116
+
117
+ > dailylog will output all types log to diff files every day like log4j and if we provide allLogsFileName then all logs
118
+ > will be move to that file too.
119
+
120
+ ## Advanced Example
121
+
122
+ some helper package is need, so install -dev for running examples
123
+
124
+ ```javascript
125
+ npm install -dev tracer
126
+ ```
127
+
128
+ Take a look at the examples directory for different examples.
129
+
130
+ ### Set logging level
131
+
132
+ the level option support index (number) or method name.
133
+
134
+ ```javascript
135
+ var logger = require('tracer').console({ level: 'warn' })
136
+ ```
137
+
138
+ equal
139
+
140
+ ```javascript
141
+ var logger = require('tracer').console({ level: 4 })
142
+ ```
143
+
144
+ ```javascript
145
+ var logger = require('tracer').console({ level: 'warn' })
146
+ logger.log('hello')
147
+ logger.trace('hello', 'world')
148
+ logger.debug('hello %s', 'world', 123)
149
+ logger.info('hello %s %d', 'world', 123, { foo: 'bar' })
150
+ logger.warn('hello %s %d %j', 'world', 123, { foo: 'bar' })
151
+ logger.error(
152
+ 'hello %s %d %j',
153
+ 'world',
154
+ 123,
155
+ { foo: 'bar' },
156
+ [1, 2, 3, 4],
157
+ Object
158
+ )
159
+
160
+ //$ node example/level.js
161
+ //2012-03-02T13:41:33.29Z <warn> level.js:6 (Object.<anonymous>) hello world 123 {"foo":"bar"}
162
+ //2012-03-02T13:41:33.30Z <error> level.js:7 (Object.<anonymous>) hello world 123 {"foo":"bar"} [ 1, 2, 3, 4 ] function Object() { [native code] }
163
+
164
+ //log,trace, debug and info level was not ouputed
165
+ ```
166
+
167
+ ### Customize output format
168
+
169
+ format tag:
170
+
171
+ - timestamp: current time
172
+ - title: method name, default is 'log', 'trace', 'debug', 'info', 'warn', 'error','fatal'
173
+ - level: method level, default is 'log':0, 'trace':1, 'debug':2, 'info':3, 'warn':4, 'error':5, 'fatal':6
174
+ - message: printf message, support %s string, %d number, %j JSON and auto inspect
175
+ - file: file name
176
+ - line: line number
177
+ - pos: position
178
+ - path: file's path
179
+ - folder: file's parent folder
180
+ - method: method name of caller
181
+ - stack: call stack message
182
+
183
+ we use tinytim micro-template system to output log. see details [tinytim](https://github.com/baryon/node-tinytim).
184
+ and, we use [Date Format](http://blog.stevenlevithan.com/archives/date-time-format) to format datetime.
185
+
186
+ ```javascript
187
+ var logger = require('tracer').console({
188
+ format: '{{timestamp}} <{{title}}> {{message}} (in {{file}}:{{line}})',
189
+ dateformat: 'HH:MM:ss.L'
190
+ })
191
+ ```
192
+
193
+ Or, you can set special format for output method
194
+
195
+ ```javascript
196
+ var logger = require('tracer').colorConsole({
197
+ format: [
198
+ '{{timestamp}} <{{title}}> {{message}} (in {{file}}:{{line}})', //default format
199
+ {
200
+ error:
201
+ '{{timestamp}} <{{title}}> {{message}} (in {{file}}:{{line}})\nCall Stack:\n{{stack}}' // error format
202
+ }
203
+ ],
204
+ dateformat: 'HH:MM:ss.L',
205
+ preprocess: function(data) {
206
+ data.title = data.title.toUpperCase()
207
+ }
208
+ })
209
+ ```
210
+
211
+ the preprocess method is a choice for changing tag.
212
+
213
+ ### Customize output methods
214
+
215
+ ```javascript
216
+ var colors = require('colors')
217
+
218
+ var logger = require('tracer').colorConsole({
219
+ level: 'log1',
220
+ methods: ['log0', 'log1', 'log2', 'log3', 'log4', 'log5'],
221
+ filters: [colors.underline, colors.yellow]
222
+ })
223
+ logger.log0('hello')
224
+ logger.log1('hello', 'world')
225
+ logger.log2('hello %s', 'world', 123)
226
+ logger.log4('hello %s %d', 'world', 123)
227
+ logger.log5('hello %s %d', 'world', 123)
228
+ ```
229
+
230
+ ### Customize filters
231
+
232
+ each filtes function was called. the function is synchronous and must be like
233
+
234
+ ```javascript
235
+ function f1(str) {
236
+ return str.toUpperCase()
237
+ }
238
+ ```
239
+
240
+ About [Colors.js](https://github.com/Marak/colors.js)
241
+
242
+ ```javascript
243
+ var colors = require('colors')
244
+ var logger = require('tracer').colorConsole({
245
+ filters: [
246
+ f1,
247
+ colors.underline,
248
+ colors.blue, //default filter
249
+ //the last item can be custom filter. here is "warn" and "error" filter
250
+ {
251
+ warn: colors.yellow,
252
+ error: [f1, colors.red, colors.bold]
253
+ }
254
+ ]
255
+ })
256
+ ```
257
+
258
+ the filter support key-function pair, example: [color_console.js](https://github.com/baryon/tracer/blob/master/lib/color_console.js)
259
+
260
+ ```javascript
261
+ {
262
+ filters : {
263
+ //log : colors.black,
264
+ trace : colors.magenta,
265
+ debug : colors.blue,
266
+ info : colors.green,
267
+ warn : colors.yellow,
268
+ error : [ colors.red, colors.bold ]
269
+ }
270
+ }
271
+ ```
272
+
273
+ and the filters is an array, the last item can be custom filter. see example:[filter.js](https://github.com/baryon/tracer/blob/master/example/filter.js)
274
+
275
+ ### Log File Transport
276
+
277
+ ```javascript
278
+ var fs = require('fs')
279
+
280
+ var logger = require('tracer').console({
281
+ transport: function(data) {
282
+ console.log(data.output)
283
+ fs.appendFile('./file.log', data.rawoutput + '\n', err => {
284
+ if (err) throw err
285
+ })
286
+ }
287
+ })
288
+
289
+ logger.log('hello')
290
+ logger.trace('hello', 'world')
291
+ logger.debug('hello %s', 'world', 123)
292
+ logger.info('hello %s %d', 'world', 123, { foo: 'bar' })
293
+ logger.warn('hello %s %d %j', 'world', 123, { foo: 'bar' })
294
+ logger.error(
295
+ 'hello %s %d %j',
296
+ 'world',
297
+ 123,
298
+ { foo: 'bar' },
299
+ [1, 2, 3, 4],
300
+ Object
301
+ )
302
+ ```
303
+
304
+ ### Stream Transport
305
+
306
+ ```javascript
307
+ var fs = require('fs')
308
+
309
+ var logger = require('tracer').console({
310
+ transport: function(data) {
311
+ console.log(data.output)
312
+ var stream = fs
313
+ .createWriteStream('./stream.log', {
314
+ flags: 'a',
315
+ encoding: 'utf8',
316
+ mode: 0666
317
+ })
318
+ .write(data.rawoutput + '\n')
319
+ }
320
+ })
321
+
322
+ logger.log('hello')
323
+ logger.trace('hello', 'world')
324
+ logger.debug('hello %s', 'world', 123)
325
+ logger.info('hello %s %d', 'world', 123, { foo: 'bar' })
326
+ logger.warn('hello %s %d %j', 'world', 123, { foo: 'bar' })
327
+ logger.error(
328
+ 'hello %s %d %j',
329
+ 'world',
330
+ 123,
331
+ { foo: 'bar' },
332
+ [1, 2, 3, 4],
333
+ Object
334
+ )
335
+ ```
336
+
337
+ ### MongoDB Transport
338
+
339
+ ```javascript
340
+ var mongo = require('mongoskin')
341
+ var db = mongo.db('127.0.0.1:27017/test?auto_reconnect')
342
+
343
+ var log_conf = {
344
+ transport: function(data) {
345
+ console.log(data.output)
346
+ var loginfo = db.collection('loginfo')
347
+ loginfo.insert(data, function(err, log) {
348
+ if (err) {
349
+ console.error(err)
350
+ }
351
+ })
352
+ }
353
+ }
354
+
355
+ var logger = require('tracer').console(log_conf)
356
+
357
+ logger.log('hello')
358
+ logger.trace('hello', 'world')
359
+ logger.debug('hello %s', 'world', 123)
360
+ logger.info('hello %s %d', 'world', 123, { foo: 'bar' })
361
+ logger.warn('hello %s %d %j', 'world', 123, { foo: 'bar' })
362
+ logger.error(
363
+ 'hello %s %d %j',
364
+ 'world',
365
+ 123,
366
+ { foo: 'bar' },
367
+ [1, 2, 3, 4],
368
+ Object
369
+ )
370
+
371
+ console.log('\n\n\npress ctrl-c to exit')
372
+ ```
373
+
374
+ ### Defining Multiple Transport
375
+
376
+ ```JavaScript
377
+ var fs = require('fs');
378
+ var logger = require('tracer').console({
379
+ transport: [
380
+ function (data) {
381
+ fs.appendFile('./file.log', data.rawoutput + '\n', (err) => {
382
+ if (err) throw err;
383
+ });
384
+ },
385
+ function(data) {
386
+ console.log(data.output);
387
+ }
388
+ ]
389
+ });
390
+ logger.log('hello');
391
+ logger.trace('hello', 'world');
392
+ logger.debug('hello %s', 'world', 123);
393
+ logger.info('hello %s %d', 'world', 123, {foo: 'bar'});
394
+ logger.warn('hello %s %d %j', 'world', 123, {foo: 'bar'});
395
+ logger.error('hello %s %d %j', 'world', 123, {foo: 'bar'}, [1, 2, 3, 4], Object);
396
+ ```
397
+
398
+ ### Define your logging helper
399
+
400
+ the work is like [color_console.js](https://github.com/baryon/tracer/blob/master/lib/color_console.js)
401
+
402
+ ```javascript
403
+ var colors = require('colors')
404
+ module.exports = function(conf) {
405
+ return require('./console')(
406
+ {
407
+ filters: {
408
+ //log : colors.black,
409
+ trace: colors.magenta,
410
+ debug: colors.blue,
411
+ info: colors.green,
412
+ warn: colors.yellow,
413
+ error: [colors.red, colors.bold]
414
+ }
415
+ },
416
+ conf
417
+ )
418
+ }
419
+ ```
420
+
421
+ ### Customize output Object's properties
422
+
423
+ ```javascript
424
+ var obj = {
425
+ Request: [
426
+ {
427
+ IsValid: ['True'],
428
+ ItemSearchRequest: [
429
+ {
430
+ ResponseGroup: ['Small', 'OfferSummary'],
431
+ Sort: ['salesrank'],
432
+ SearchIndex: ['DVD']
433
+ }
434
+ ]
435
+ }
436
+ ]
437
+ }
438
+
439
+ var logger = require('tracer').console({
440
+ inspectOpt: {
441
+ showHidden: true, //the object's non-enumerable properties will be shown too
442
+ depth: null //tells inspect how many times to recurse while formatting the object. This is useful for inspecting large complicated objects. Defaults to 2. To make it recurse indefinitely pass null.
443
+ }
444
+ })
445
+ logger.log(obj)
446
+
447
+ //
448
+ // 2013-09-30T04:30:44.927Z <log> depth.js:26 (Object.<anonymous>) { Request:
449
+ // [ { IsValid: [ 'True', [length]: 1 ],
450
+ // ItemSearchRequest:
451
+ // [ { ResponseGroup: [ 'Small', 'OfferSummary', [length]: 2 ],
452
+ // Sort: [ 'salesrank', [length]: 1 ],
453
+ // SearchIndex: [ 'DVD', [length]: 1 ] },
454
+ // [length]: 1 ] },
455
+ // [length]: 1 ] }
456
+ ```
457
+
458
+ ### Specify the stack index for file info
459
+
460
+ Fix `file`, `path`, and `line` info width `stackIndex`.
461
+ It is userful for development package.
462
+
463
+ ```javascript
464
+ var logger = require('tracer').console({
465
+ stackIndex: 0 // default 0
466
+ })
467
+ var logger2 = require('tracer').console({
468
+ stackIndex: 1
469
+ })
470
+ var logMgr = function(type, msg) {
471
+ return logger[type](msg)
472
+ }
473
+ var logMgr2 = function(type, msg) {
474
+ return logger2[type](msg)
475
+ }
476
+
477
+ logger.log('hello') // the line info is right
478
+ logger2.log('hello') // the line info is error
479
+ logMgr('log', 'hello') // the line info is error
480
+ logMgr2('log', 'hello') // the line info is right
481
+ ```
482
+
483
+ ### setLevel and close
484
+
485
+ setLevel and close methods to dynamically change the log level.
486
+ these are global settings, affect all output that are created via tracer
487
+
488
+ ```javascript
489
+ var tracer = require('tracer')
490
+ tracer.setLevel(2) //or tracer.setLevel('debug');
491
+ //... ...
492
+ tracer.close()
493
+ ```
494
+
495
+ notice:
496
+ if you set level in initialize, you can't change more lower level than the initial level.
497
+
498
+ ```javascript
499
+ var tracer = require('tracer')
500
+ var logger = tracer.console({ level: 'warn' })
501
+
502
+ logger.log('hello') //nothing output
503
+
504
+ tracer.setLevel(0) //dont work.
505
+ logger.log('hello') //nothing output
506
+
507
+ tracer.setLevel('error') //it works.
508
+ logger.warn('hello') //nothing output
509
+
510
+ logger.error('hello') //'hello'
511
+ ```
512
+
513
+ Read examples please. [setLevel.js](https://github.com/baryon/tracer/blob/master/example/setLevel.js)
514
+
515
+ ### support console methods
516
+
517
+ support count, assert and table methods.
518
+ Read examples please. [consoleMethods.js](https://github.com/baryon/tracer/blob/master/example/consoleMethods.js)
519
+
520
+ More features, please read examples.
521
+
522
+ ## History
523
+
524
+ ### 1.1.6
525
+ - Merged: Typings for new methods #131 by @zS1L3NT
526
+ - Merged: Update type of depth property in inspectOpt #134 by @SufianBabri
527
+
528
+ ### 1.1.5
529
+ - Updated some packages to the latest version. Fixed severity vulnerability
530
+
531
+ ### 1.1.4
532
+ - Fixed fixes security vulnerability by GitHub bot
533
+ - Merged fix bug then when set allLogFile cannot delete old old files #122. Thanks @horsefaced
534
+ - Congratulations 1.1K Stargazers
535
+
536
+ ### 1.1.0
537
+ - Updated map tracer.warn to console.warn. Thanks @eouia
538
+ - Fixed webpack warning "Critical dependency: the request of a dependency is an expression". Thanks @tjr
539
+ - Fixed Move nyc from dependencies to devDependencies. Thanks @madarche
540
+
541
+ ### 1.0.3
542
+ - Updated some packages to the latest version. Fixed severity vulnerability
543
+
544
+ ### 1.0.2
545
+
546
+ - Updated some packages to the latest version
547
+ - Released
548
+
549
+ ### 0.9.9
550
+
551
+ - Fixed. Port tests from expresso to mocha. Fixes #105 #106 by @ossdev07.
552
+ - Fixed. Update type definitions to be able to use array in filters. #104 by @irisked.
553
+ - Fixed potential security vulnerabilities in your dependencies in istanbul package.
554
+
555
+ ### 0.9.8
556
+
557
+ - Added. {{folder}} template option for parent folder. #96 by @shbatm.
558
+ - Added. rootDir param option for folder. #99 by @nswbmw. sample: folder.js and folder2.js
559
+
560
+ ### 0.9.5
561
+
562
+ - Fixed. Update index.d.ts and dtslint for typescript. #92 and #94 by @Diluka.
563
+
564
+ ### 0.9.3
565
+
566
+ - Fixed. Any custom keys for typescript. #90 by @Diluka.
567
+ - Updated formatJson sample
568
+
569
+ ### 0.9.2
570
+
571
+ - Fixed. Make type definitions correct & add comments. #89 by @plylrnsdy.
572
+ - Updated npm packages
573
+
574
+ ### 0.9.1
575
+
576
+ - Fixed. transport function parameter data type is LogOutput not string #87 by @myfjdthink.
577
+
578
+ ### 0.9.0
579
+
580
+ - Added support all console methods, include count,assert and table. a new option 'supportConsoleMethods' is true default. example: consoleMethods.js in example folder.
581
+
582
+ ### 0.8.15
583
+
584
+ - Adding type definitions #84 by @kobim
585
+ - Added data.rawoutput #83 by @Royalgamer06
586
+ - recommended linting #82 by @elomariAchraf
587
+
588
+ ### 0.8.12
589
+
590
+ - added the ability to load the config from a file. #80 thanks @muthursyamburi
591
+ - fix a bug for windows cant create dailyfile dir #77 by @moonrailgun
592
+ - fixed. no fatal color in colorConsole missed. #79
593
+
594
+ ### 0.8.11
595
+
596
+ - added fatal level, like log4j. #75 thanks @ds3783
597
+ - fixed double-log file issue. #71 thanks @huangts
598
+ - and something missed
599
+
600
+ ### 0.8.4-0.8.7
601
+
602
+ - added some codes, details: #56 thanks @AmitThakkar
603
+
604
+ ### 0.8.3
605
+
606
+ - fixed: Got extra data in the log file. #45 thanks @JohnSmithDr
607
+ - merged: Add Strict mode and EsLint from @HakmiSofian
608
+ - merged: Change the log to file example to using `fs.appendFile()` instead. from @twang2218
609
+ - merged: Enable use of tracer in strict mode from @madarche
610
+ - merged: Added getter for log level from @ColRad
611
+ - tested on node.js 4/5
612
+
613
+ ### 0.8.2
614
+
615
+ - added: Defining a field for max file days filea. #35 thanks @AmitThakkar
616
+
617
+ ### 0.8.1
618
+
619
+ - added: Adding support for Multiple Transports. #36 thanks @AmitThakkar
620
+ - fixed: dailyfile auto create folder #37. thanks @klesh
621
+
622
+ ### 0.8.0
623
+
624
+ - added: setLevel method to dynamically change the log level. thanks @madarche, #30
625
+ - added: close method to end all of the writable streams. thanks @loht, #31
626
+
627
+ ### 0.7.4
628
+
629
+ - fixed: use the lastest package of colors v1.0.3.
630
+ - fixed: removed filter's second parameter
631
+
632
+ ### 0.7.3
633
+
634
+ - restored: use colors package replace cli-color, because some bugs and a lot of dependencies in cli-color. ref colorConsole2.js example.
635
+
636
+ ### 0.7.2
637
+
638
+ - fixed: change log dateformat from UTC to LOCAL iso format (Suggest by @felixhao28)
639
+ - fixed: change color package from colors to cli-color (Suggest by @jeffreydwalter)
640
+
641
+ ### 0.7.1
642
+
643
+ - added: format add `%j` placeholder (Thanks @Bacra)
644
+ - added: add stackIndex opt to specify the index of stack (Thanks @Bacra)
645
+
646
+ ### 0.7.0
647
+
648
+ - fixed: change inspect format, using new format of node.js 0.10. (Thanks @Bacra)
649
+ - fixed: now support node.js 0.10 and above, NO Support 0.8 and 0.6
650
+
651
+ ### 0.6.2
652
+
653
+ - fixed: change stack from array to string, and fixed example2.js
654
+
655
+ ### 0.6.1
656
+
657
+ - fixed: get the filename correctly on windows. thanks Tom Carchrae
658
+ - added: added missing repository field. thanks @madarche
659
+
660
+ ### 0.6.0
661
+
662
+ - feature: add showHidden and depth option for showing object's properties.
663
+
664
+ ### 0.5.1
665
+
666
+ - feature: add args into data object, now we can check args in preprocess, see example format2.js, merge from yasuyk04/work
667
+
668
+ ### 0.5.0
669
+
670
+ - performance: speed up when the format don't include method,path,line,pos,file, thanks sharonjl's issue report
671
+
672
+ ### 0.4.2
673
+
674
+ - fixed: debug color from blue to cyan
675
+
676
+ ### 0.4.1
677
+
678
+ - fixed: default timestamp is ISO UTC format.
679
+
680
+ ### 0.4.0
681
+
682
+ - feature: support dailyfile method, added some examples
683
+ - feature: add preprocess custom method for changing tags before format
684
+
685
+ ### 0.3.5
686
+
687
+ - fixed bug: can't get method/line number in express
688
+
689
+ ### 0.3.4
690
+
691
+ - use [tinytim package](https://github.com/baryon/node-tinytim)
692
+
693
+ ### 0.3.3
694
+
695
+ - spell missing (transpot->transport)
696
+
697
+ ### 0.3.2
698
+
699
+ - speed-up for \_log function
700
+ - add some test codes
701
+
702
+ ### 0.3.1
703
+
704
+ - minor-fix for call stack
705
+
706
+ ### 0.3.0
707
+
708
+ - support custom format and filter for special method
709
+
710
+ ### 0.2.1
711
+
712
+ - fix spell missing
713
+
714
+ ### 0.2.0
715
+
716
+ - Add more examples.
717
+ - Default methods is log, trace, debug, info, warn, error.
718
+ - Support 'string' level, {level:'warn'} equal {level:4}
719
+
720
+ ### 0.1.0
721
+
722
+ - Initial Tracer implementation.
723
+
724
+ ## License
725
+
726
+ (The MIT License)
727
+
728
+ Copyright (c) 2012 LI Long &lt;lilong@gmail.com&gt;
729
+
730
+ Permission is hereby granted, free of charge, to any person obtaining
731
+ a copy of this software and associated documentation files (the
732
+ 'Software'), to deal in the Software without restriction, including
733
+ without limitation the rights to use, copy, modify, merge, publish,
734
+ distribute, sublicense, and/or sell copies of the Software, and to
735
+ permit persons to whom the Software is furnished to do so, subject to
736
+ the following conditions:
737
+
738
+ The above copyright notice and this permission notice shall be
739
+ included in all copies or substantial portions of the Software.
740
+
741
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
742
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
743
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
744
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
745
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
746
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
747
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.