@spinajs/log 2.0.481 → 2.0.484

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 (304) hide show
  1. package/README.md +744 -0
  2. package/lib/cjs/archive/LogArchiveService.d.ts +75 -0
  3. package/lib/cjs/archive/LogArchiveService.d.ts.map +1 -0
  4. package/lib/cjs/archive/LogArchiveService.js +189 -0
  5. package/lib/cjs/archive/LogArchiveService.js.map +1 -0
  6. package/lib/cjs/archive/archive-strategy.d.ts +32 -0
  7. package/lib/cjs/archive/archive-strategy.d.ts.map +1 -0
  8. package/lib/cjs/archive/archive-strategy.js +43 -0
  9. package/lib/cjs/archive/archive-strategy.js.map +1 -0
  10. package/lib/cjs/archive/context.d.ts +50 -0
  11. package/lib/cjs/archive/context.d.ts.map +1 -0
  12. package/lib/cjs/archive/context.js +3 -0
  13. package/lib/cjs/archive/context.js.map +1 -0
  14. package/lib/cjs/archive/index.d.ts +10 -0
  15. package/lib/cjs/archive/index.d.ts.map +1 -0
  16. package/lib/cjs/archive/index.js +26 -0
  17. package/lib/cjs/archive/index.js.map +1 -0
  18. package/lib/cjs/archive/retention-strategy.d.ts +26 -0
  19. package/lib/cjs/archive/retention-strategy.d.ts.map +1 -0
  20. package/lib/cjs/archive/retention-strategy.js +42 -0
  21. package/lib/cjs/archive/retention-strategy.js.map +1 -0
  22. package/lib/cjs/archive/strategies/AgeLogRetentionStrategy.d.ts +10 -0
  23. package/lib/cjs/archive/strategies/AgeLogRetentionStrategy.d.ts.map +1 -0
  24. package/lib/cjs/archive/strategies/AgeLogRetentionStrategy.js +46 -0
  25. package/lib/cjs/archive/strategies/AgeLogRetentionStrategy.js.map +1 -0
  26. package/lib/cjs/archive/strategies/CountLogRetentionStrategy.d.ts +10 -0
  27. package/lib/cjs/archive/strategies/CountLogRetentionStrategy.d.ts.map +1 -0
  28. package/lib/cjs/archive/strategies/CountLogRetentionStrategy.js +42 -0
  29. package/lib/cjs/archive/strategies/CountLogRetentionStrategy.js.map +1 -0
  30. package/lib/cjs/archive/strategies/CronLogArchiveStrategy.d.ts +15 -0
  31. package/lib/cjs/archive/strategies/CronLogArchiveStrategy.d.ts.map +1 -0
  32. package/lib/cjs/archive/strategies/CronLogArchiveStrategy.js +52 -0
  33. package/lib/cjs/archive/strategies/CronLogArchiveStrategy.js.map +1 -0
  34. package/lib/cjs/archive/strategies/SizeLogArchiveStrategy.d.ts +18 -0
  35. package/lib/cjs/archive/strategies/SizeLogArchiveStrategy.d.ts.map +1 -0
  36. package/lib/cjs/archive/strategies/SizeLogArchiveStrategy.js +63 -0
  37. package/lib/cjs/archive/strategies/SizeLogArchiveStrategy.js.map +1 -0
  38. package/lib/cjs/archive/strategies/util.d.ts +28 -0
  39. package/lib/cjs/archive/strategies/util.d.ts.map +1 -0
  40. package/lib/cjs/archive/strategies/util.js +59 -0
  41. package/lib/cjs/archive/strategies/util.js.map +1 -0
  42. package/lib/cjs/bootstrap.d.ts.map +1 -1
  43. package/lib/cjs/bootstrap.js +24 -1
  44. package/lib/cjs/bootstrap.js.map +1 -1
  45. package/lib/cjs/callsite.d.ts +26 -0
  46. package/lib/cjs/callsite.d.ts.map +1 -0
  47. package/lib/cjs/callsite.js +60 -0
  48. package/lib/cjs/callsite.js.map +1 -0
  49. package/lib/cjs/config/log.d.ts +96 -0
  50. package/lib/cjs/config/log.d.ts.map +1 -0
  51. package/lib/cjs/config/log.js +75 -0
  52. package/lib/cjs/config/log.js.map +1 -0
  53. package/lib/cjs/context.browser.d.ts +46 -0
  54. package/lib/cjs/context.browser.d.ts.map +1 -0
  55. package/lib/cjs/context.browser.js +85 -0
  56. package/lib/cjs/context.browser.js.map +1 -0
  57. package/lib/cjs/context.d.ts +61 -0
  58. package/lib/cjs/context.d.ts.map +1 -0
  59. package/lib/cjs/context.js +92 -0
  60. package/lib/cjs/context.js.map +1 -0
  61. package/lib/cjs/filters/LevelFilter.d.ts +24 -0
  62. package/lib/cjs/filters/LevelFilter.d.ts.map +1 -0
  63. package/lib/cjs/filters/LevelFilter.js +39 -0
  64. package/lib/cjs/filters/LevelFilter.js.map +1 -0
  65. package/lib/cjs/filters/MatchFilter.d.ts +30 -0
  66. package/lib/cjs/filters/MatchFilter.d.ts.map +1 -0
  67. package/lib/cjs/filters/MatchFilter.js +65 -0
  68. package/lib/cjs/filters/MatchFilter.js.map +1 -0
  69. package/lib/cjs/filters/RateLimitFilter.d.ts +37 -0
  70. package/lib/cjs/filters/RateLimitFilter.d.ts.map +1 -0
  71. package/lib/cjs/filters/RateLimitFilter.js +70 -0
  72. package/lib/cjs/filters/RateLimitFilter.js.map +1 -0
  73. package/lib/cjs/filters/index.d.ts +4 -0
  74. package/lib/cjs/filters/index.d.ts.map +1 -0
  75. package/lib/cjs/filters/index.js +20 -0
  76. package/lib/cjs/filters/index.js.map +1 -0
  77. package/lib/cjs/index.browser.d.ts +14 -0
  78. package/lib/cjs/index.browser.d.ts.map +1 -0
  79. package/lib/cjs/index.browser.js +46 -0
  80. package/lib/cjs/index.browser.js.map +1 -0
  81. package/lib/cjs/index.d.ts +8 -0
  82. package/lib/cjs/index.d.ts.map +1 -1
  83. package/lib/cjs/index.js +8 -0
  84. package/lib/cjs/index.js.map +1 -1
  85. package/lib/cjs/log.d.ts +60 -1
  86. package/lib/cjs/log.d.ts.map +1 -1
  87. package/lib/cjs/log.js +294 -32
  88. package/lib/cjs/log.js.map +1 -1
  89. package/lib/cjs/perf/LogMetricSink.d.ts +55 -0
  90. package/lib/cjs/perf/LogMetricSink.d.ts.map +1 -0
  91. package/lib/cjs/perf/LogMetricSink.js +154 -0
  92. package/lib/cjs/perf/LogMetricSink.js.map +1 -0
  93. package/lib/cjs/perf/measure.d.ts +9 -0
  94. package/lib/cjs/perf/measure.d.ts.map +1 -0
  95. package/lib/cjs/perf/measure.js +21 -0
  96. package/lib/cjs/perf/measure.js.map +1 -0
  97. package/lib/cjs/perf.d.ts +9 -0
  98. package/lib/cjs/perf.d.ts.map +1 -0
  99. package/lib/cjs/perf.js +18 -0
  100. package/lib/cjs/perf.js.map +1 -0
  101. package/lib/cjs/schemas/log.configuration.d.ts +151 -18
  102. package/lib/cjs/schemas/log.configuration.d.ts.map +1 -1
  103. package/lib/cjs/schemas/log.configuration.js +154 -21
  104. package/lib/cjs/schemas/log.configuration.js.map +1 -1
  105. package/lib/cjs/targets/BrowserConsoleTarget.d.ts +48 -0
  106. package/lib/cjs/targets/BrowserConsoleTarget.d.ts.map +1 -0
  107. package/lib/cjs/targets/BrowserConsoleTarget.js +48 -0
  108. package/lib/cjs/targets/BrowserConsoleTarget.js.map +1 -0
  109. package/lib/cjs/targets/ColoredConsoleTarget.d.ts.map +1 -1
  110. package/lib/cjs/targets/ColoredConsoleTarget.js +21 -12
  111. package/lib/cjs/targets/ColoredConsoleTarget.js.map +1 -1
  112. package/lib/cjs/targets/FileTarget.d.ts +96 -20
  113. package/lib/cjs/targets/FileTarget.d.ts.map +1 -1
  114. package/lib/cjs/targets/FileTarget.js +188 -225
  115. package/lib/cjs/targets/FileTarget.js.map +1 -1
  116. package/lib/cjs/targets/JsonFileTarget.d.ts +19 -0
  117. package/lib/cjs/targets/JsonFileTarget.d.ts.map +1 -0
  118. package/lib/cjs/targets/JsonFileTarget.js +44 -0
  119. package/lib/cjs/targets/JsonFileTarget.js.map +1 -0
  120. package/lib/cjs/targets/JsonTarget.d.ts +27 -0
  121. package/lib/cjs/targets/JsonTarget.d.ts.map +1 -0
  122. package/lib/cjs/targets/JsonTarget.js +46 -0
  123. package/lib/cjs/targets/JsonTarget.js.map +1 -0
  124. package/lib/cjs/targets/MemoryTarget.d.ts +33 -0
  125. package/lib/cjs/targets/MemoryTarget.d.ts.map +1 -0
  126. package/lib/cjs/targets/MemoryTarget.js +63 -0
  127. package/lib/cjs/targets/MemoryTarget.js.map +1 -0
  128. package/lib/cjs/targets/index.d.ts +7 -0
  129. package/lib/cjs/targets/index.d.ts.map +1 -1
  130. package/lib/cjs/targets/index.js +7 -0
  131. package/lib/cjs/targets/index.js.map +1 -1
  132. package/lib/cjs/targets/wrappers/AutoFlushTarget.d.ts +37 -0
  133. package/lib/cjs/targets/wrappers/AutoFlushTarget.d.ts.map +1 -0
  134. package/lib/cjs/targets/wrappers/AutoFlushTarget.js +48 -0
  135. package/lib/cjs/targets/wrappers/AutoFlushTarget.js.map +1 -0
  136. package/lib/cjs/targets/wrappers/FallbackGroupTarget.d.ts +45 -0
  137. package/lib/cjs/targets/wrappers/FallbackGroupTarget.d.ts.map +1 -0
  138. package/lib/cjs/targets/wrappers/FallbackGroupTarget.js +94 -0
  139. package/lib/cjs/targets/wrappers/FallbackGroupTarget.js.map +1 -0
  140. package/lib/cjs/targets/wrappers/RetryingTarget.d.ts +44 -0
  141. package/lib/cjs/targets/wrappers/RetryingTarget.d.ts.map +1 -0
  142. package/lib/cjs/targets/wrappers/RetryingTarget.js +61 -0
  143. package/lib/cjs/targets/wrappers/RetryingTarget.js.map +1 -0
  144. package/lib/cjs/targets/wrappers/SplitGroupTarget.d.ts +30 -0
  145. package/lib/cjs/targets/wrappers/SplitGroupTarget.d.ts.map +1 -0
  146. package/lib/cjs/targets/wrappers/SplitGroupTarget.js +52 -0
  147. package/lib/cjs/targets/wrappers/SplitGroupTarget.js.map +1 -0
  148. package/lib/cjs/traceparent.d.ts +63 -0
  149. package/lib/cjs/traceparent.d.ts.map +1 -0
  150. package/lib/cjs/traceparent.js +107 -0
  151. package/lib/cjs/traceparent.js.map +1 -0
  152. package/lib/mjs/archive/LogArchiveService.d.ts +75 -0
  153. package/lib/mjs/archive/LogArchiveService.d.ts.map +1 -0
  154. package/lib/mjs/archive/LogArchiveService.js +186 -0
  155. package/lib/mjs/archive/LogArchiveService.js.map +1 -0
  156. package/lib/mjs/archive/archive-strategy.d.ts +32 -0
  157. package/lib/mjs/archive/archive-strategy.d.ts.map +1 -0
  158. package/lib/mjs/archive/archive-strategy.js +39 -0
  159. package/lib/mjs/archive/archive-strategy.js.map +1 -0
  160. package/lib/mjs/archive/context.d.ts +50 -0
  161. package/lib/mjs/archive/context.d.ts.map +1 -0
  162. package/lib/mjs/archive/context.js +2 -0
  163. package/lib/mjs/archive/context.js.map +1 -0
  164. package/lib/mjs/archive/index.d.ts +10 -0
  165. package/lib/mjs/archive/index.d.ts.map +1 -0
  166. package/lib/mjs/archive/index.js +10 -0
  167. package/lib/mjs/archive/index.js.map +1 -0
  168. package/lib/mjs/archive/retention-strategy.d.ts +26 -0
  169. package/lib/mjs/archive/retention-strategy.d.ts.map +1 -0
  170. package/lib/mjs/archive/retention-strategy.js +38 -0
  171. package/lib/mjs/archive/retention-strategy.js.map +1 -0
  172. package/lib/mjs/archive/strategies/AgeLogRetentionStrategy.d.ts +10 -0
  173. package/lib/mjs/archive/strategies/AgeLogRetentionStrategy.d.ts.map +1 -0
  174. package/lib/mjs/archive/strategies/AgeLogRetentionStrategy.js +43 -0
  175. package/lib/mjs/archive/strategies/AgeLogRetentionStrategy.js.map +1 -0
  176. package/lib/mjs/archive/strategies/CountLogRetentionStrategy.d.ts +10 -0
  177. package/lib/mjs/archive/strategies/CountLogRetentionStrategy.d.ts.map +1 -0
  178. package/lib/mjs/archive/strategies/CountLogRetentionStrategy.js +39 -0
  179. package/lib/mjs/archive/strategies/CountLogRetentionStrategy.js.map +1 -0
  180. package/lib/mjs/archive/strategies/CronLogArchiveStrategy.d.ts +15 -0
  181. package/lib/mjs/archive/strategies/CronLogArchiveStrategy.d.ts.map +1 -0
  182. package/lib/mjs/archive/strategies/CronLogArchiveStrategy.js +49 -0
  183. package/lib/mjs/archive/strategies/CronLogArchiveStrategy.js.map +1 -0
  184. package/lib/mjs/archive/strategies/SizeLogArchiveStrategy.d.ts +18 -0
  185. package/lib/mjs/archive/strategies/SizeLogArchiveStrategy.d.ts.map +1 -0
  186. package/lib/mjs/archive/strategies/SizeLogArchiveStrategy.js +60 -0
  187. package/lib/mjs/archive/strategies/SizeLogArchiveStrategy.js.map +1 -0
  188. package/lib/mjs/archive/strategies/util.d.ts +28 -0
  189. package/lib/mjs/archive/strategies/util.d.ts.map +1 -0
  190. package/lib/mjs/archive/strategies/util.js +54 -0
  191. package/lib/mjs/archive/strategies/util.js.map +1 -0
  192. package/lib/mjs/bootstrap.d.ts.map +1 -1
  193. package/lib/mjs/bootstrap.js +25 -2
  194. package/lib/mjs/bootstrap.js.map +1 -1
  195. package/lib/mjs/callsite.d.ts +26 -0
  196. package/lib/mjs/callsite.d.ts.map +1 -0
  197. package/lib/mjs/callsite.js +57 -0
  198. package/lib/mjs/callsite.js.map +1 -0
  199. package/lib/mjs/config/log.d.ts +96 -0
  200. package/lib/mjs/config/log.d.ts.map +1 -0
  201. package/lib/mjs/config/log.js +72 -0
  202. package/lib/mjs/config/log.js.map +1 -0
  203. package/lib/mjs/context.browser.d.ts +46 -0
  204. package/lib/mjs/context.browser.d.ts.map +1 -0
  205. package/lib/mjs/context.browser.js +81 -0
  206. package/lib/mjs/context.browser.js.map +1 -0
  207. package/lib/mjs/context.d.ts +61 -0
  208. package/lib/mjs/context.d.ts.map +1 -0
  209. package/lib/mjs/context.js +88 -0
  210. package/lib/mjs/context.js.map +1 -0
  211. package/lib/mjs/filters/LevelFilter.d.ts +24 -0
  212. package/lib/mjs/filters/LevelFilter.d.ts.map +1 -0
  213. package/lib/mjs/filters/LevelFilter.js +36 -0
  214. package/lib/mjs/filters/LevelFilter.js.map +1 -0
  215. package/lib/mjs/filters/MatchFilter.d.ts +30 -0
  216. package/lib/mjs/filters/MatchFilter.d.ts.map +1 -0
  217. package/lib/mjs/filters/MatchFilter.js +62 -0
  218. package/lib/mjs/filters/MatchFilter.js.map +1 -0
  219. package/lib/mjs/filters/RateLimitFilter.d.ts +37 -0
  220. package/lib/mjs/filters/RateLimitFilter.d.ts.map +1 -0
  221. package/lib/mjs/filters/RateLimitFilter.js +67 -0
  222. package/lib/mjs/filters/RateLimitFilter.js.map +1 -0
  223. package/lib/mjs/filters/index.d.ts +4 -0
  224. package/lib/mjs/filters/index.d.ts.map +1 -0
  225. package/lib/mjs/filters/index.js +4 -0
  226. package/lib/mjs/filters/index.js.map +1 -0
  227. package/lib/mjs/index.browser.d.ts +14 -0
  228. package/lib/mjs/index.browser.d.ts.map +1 -0
  229. package/lib/mjs/index.browser.js +30 -0
  230. package/lib/mjs/index.browser.js.map +1 -0
  231. package/lib/mjs/index.d.ts +8 -0
  232. package/lib/mjs/index.d.ts.map +1 -1
  233. package/lib/mjs/index.js +8 -0
  234. package/lib/mjs/index.js.map +1 -1
  235. package/lib/mjs/log.d.ts +60 -1
  236. package/lib/mjs/log.d.ts.map +1 -1
  237. package/lib/mjs/log.js +295 -33
  238. package/lib/mjs/log.js.map +1 -1
  239. package/lib/mjs/perf/LogMetricSink.d.ts +55 -0
  240. package/lib/mjs/perf/LogMetricSink.d.ts.map +1 -0
  241. package/lib/mjs/perf/LogMetricSink.js +151 -0
  242. package/lib/mjs/perf/LogMetricSink.js.map +1 -0
  243. package/lib/mjs/perf/measure.d.ts +9 -0
  244. package/lib/mjs/perf/measure.d.ts.map +1 -0
  245. package/lib/mjs/perf/measure.js +18 -0
  246. package/lib/mjs/perf/measure.js.map +1 -0
  247. package/lib/mjs/perf.d.ts +9 -0
  248. package/lib/mjs/perf.d.ts.map +1 -0
  249. package/lib/mjs/perf.js +15 -0
  250. package/lib/mjs/perf.js.map +1 -0
  251. package/lib/mjs/schemas/log.configuration.d.ts +151 -18
  252. package/lib/mjs/schemas/log.configuration.d.ts.map +1 -1
  253. package/lib/mjs/schemas/log.configuration.js +154 -21
  254. package/lib/mjs/schemas/log.configuration.js.map +1 -1
  255. package/lib/mjs/targets/BrowserConsoleTarget.d.ts +48 -0
  256. package/lib/mjs/targets/BrowserConsoleTarget.d.ts.map +1 -0
  257. package/lib/mjs/targets/BrowserConsoleTarget.js +45 -0
  258. package/lib/mjs/targets/BrowserConsoleTarget.js.map +1 -0
  259. package/lib/mjs/targets/ColoredConsoleTarget.d.ts.map +1 -1
  260. package/lib/mjs/targets/ColoredConsoleTarget.js +21 -9
  261. package/lib/mjs/targets/ColoredConsoleTarget.js.map +1 -1
  262. package/lib/mjs/targets/FileTarget.d.ts +96 -20
  263. package/lib/mjs/targets/FileTarget.d.ts.map +1 -1
  264. package/lib/mjs/targets/FileTarget.js +191 -192
  265. package/lib/mjs/targets/FileTarget.js.map +1 -1
  266. package/lib/mjs/targets/JsonFileTarget.d.ts +19 -0
  267. package/lib/mjs/targets/JsonFileTarget.d.ts.map +1 -0
  268. package/lib/mjs/targets/JsonFileTarget.js +41 -0
  269. package/lib/mjs/targets/JsonFileTarget.js.map +1 -0
  270. package/lib/mjs/targets/JsonTarget.d.ts +27 -0
  271. package/lib/mjs/targets/JsonTarget.d.ts.map +1 -0
  272. package/lib/mjs/targets/JsonTarget.js +43 -0
  273. package/lib/mjs/targets/JsonTarget.js.map +1 -0
  274. package/lib/mjs/targets/MemoryTarget.d.ts +33 -0
  275. package/lib/mjs/targets/MemoryTarget.d.ts.map +1 -0
  276. package/lib/mjs/targets/MemoryTarget.js +60 -0
  277. package/lib/mjs/targets/MemoryTarget.js.map +1 -0
  278. package/lib/mjs/targets/index.d.ts +7 -0
  279. package/lib/mjs/targets/index.d.ts.map +1 -1
  280. package/lib/mjs/targets/index.js +7 -0
  281. package/lib/mjs/targets/index.js.map +1 -1
  282. package/lib/mjs/targets/wrappers/AutoFlushTarget.d.ts +37 -0
  283. package/lib/mjs/targets/wrappers/AutoFlushTarget.d.ts.map +1 -0
  284. package/lib/mjs/targets/wrappers/AutoFlushTarget.js +45 -0
  285. package/lib/mjs/targets/wrappers/AutoFlushTarget.js.map +1 -0
  286. package/lib/mjs/targets/wrappers/FallbackGroupTarget.d.ts +45 -0
  287. package/lib/mjs/targets/wrappers/FallbackGroupTarget.d.ts.map +1 -0
  288. package/lib/mjs/targets/wrappers/FallbackGroupTarget.js +91 -0
  289. package/lib/mjs/targets/wrappers/FallbackGroupTarget.js.map +1 -0
  290. package/lib/mjs/targets/wrappers/RetryingTarget.d.ts +44 -0
  291. package/lib/mjs/targets/wrappers/RetryingTarget.d.ts.map +1 -0
  292. package/lib/mjs/targets/wrappers/RetryingTarget.js +58 -0
  293. package/lib/mjs/targets/wrappers/RetryingTarget.js.map +1 -0
  294. package/lib/mjs/targets/wrappers/SplitGroupTarget.d.ts +30 -0
  295. package/lib/mjs/targets/wrappers/SplitGroupTarget.d.ts.map +1 -0
  296. package/lib/mjs/targets/wrappers/SplitGroupTarget.js +49 -0
  297. package/lib/mjs/targets/wrappers/SplitGroupTarget.js.map +1 -0
  298. package/lib/mjs/traceparent.d.ts +63 -0
  299. package/lib/mjs/traceparent.d.ts.map +1 -0
  300. package/lib/mjs/traceparent.js +100 -0
  301. package/lib/mjs/traceparent.js.map +1 -0
  302. package/lib/tsconfig.cjs.tsbuildinfo +1 -1
  303. package/lib/tsconfig.mjs.tsbuildinfo +1 -1
  304. package/package.json +26 -15
package/lib/cjs/log.js CHANGED
@@ -22,18 +22,45 @@ const log_common_1 = require("@spinajs/log-common");
22
22
  const glob_to_regexp_1 = __importDefault(require("glob-to-regexp"));
23
23
  const exceptions_1 = require("@spinajs/exceptions");
24
24
  const internal_logger_1 = require("@spinajs/internal-logger");
25
+ const callsite_js_1 = require("./callsite.js");
25
26
  const lodash_1 = __importDefault(require("lodash"));
27
+ // Module-level cache of compiled glob->RegExp so a rule pattern is compiled ONCE
28
+ // process-wide, not once per (logger x rule) evaluation.
29
+ const GLOB_CACHE = new Map();
30
+ function globFor(pattern) {
31
+ let re = GLOB_CACHE.get(pattern);
32
+ if (!re) {
33
+ // eslint-disable-next-line security/detect-non-literal-regexp
34
+ re = (0, glob_to_regexp_1.default)(pattern);
35
+ GLOB_CACHE.set(pattern, re);
36
+ }
37
+ return re;
38
+ }
26
39
  function wrapWrite(level) {
27
40
  return (err, message, ...args) => {
41
+ // Zero-cost gating: only parse a caller frame ( which constructs an Error )
42
+ // when some target's layout references ${callsite}. Otherwise `vars` is just
43
+ // this.Variables and no Error is ever built - mirroring NLog's StackTraceUsage.
44
+ const extra = this.CaptureCallsite ? { callsite: (0, callsite_js_1.captureCallsite)() } : undefined;
45
+ const vars = extra ? { ...this.Variables, ...extra } : this.Variables;
28
46
  if (err instanceof Error) {
29
- return this.write((0, log_common_1.createLogMessageObject)(err, message, level, this.Name, this.Variables, ...args));
47
+ return this.write((0, log_common_1.createLogMessageObject)(err, message, level, this.Name, vars, ...args));
48
+ }
49
+ else if (err !== null && typeof err === "object" && !Array.isArray(err)) {
50
+ // merging-object form: `err` is a bag of structured fields, `message` is the
51
+ // format string, the rest are printf args. Fields are spread into Variables
52
+ // ( so a nested `error` key still runs the serializer ).
53
+ const fields = err;
54
+ const fmt = typeof message === "string" ? message : "";
55
+ return this.write((0, log_common_1.createLogMessageObject)(null, fmt, level, this.Name, { ...vars, ...fields }, ...args));
30
56
  }
31
57
  else {
58
+ const sErr = err;
32
59
  if (message) {
33
- return this.write((0, log_common_1.createLogMessageObject)(err, null, level, this.Name, this.Variables, ...[message, ...args]));
60
+ return this.write((0, log_common_1.createLogMessageObject)(sErr, null, level, this.Name, vars, ...[message, ...args]));
34
61
  }
35
62
  else {
36
- return this.write((0, log_common_1.createLogMessageObject)(err, null, level, this.Name, this.Variables, ...args));
63
+ return this.write((0, log_common_1.createLogMessageObject)(sErr, null, level, this.Name, vars, ...args));
37
64
  }
38
65
  }
39
66
  };
@@ -46,6 +73,13 @@ let FrameworkLogger = class FrameworkLogger extends log_common_1.Log {
46
73
  super();
47
74
  this.Name = Name;
48
75
  this.Parent = Parent;
76
+ // composable per-logger filter pipeline, resolved from logger.filters ( plus a
77
+ // prepended WhenRepeatedFilter for the legacy logger.whenRepeated option ).
78
+ // Applied IN ORDER in write(); a null from any filter drops the entry.
79
+ this.Filters = [];
80
+ // Set in resolve() when some target's layout references ${callsite}. Gates the
81
+ // caller-frame capture in wrapWrite so logging stays zero-cost otherwise.
82
+ this.CaptureCallsite = false;
49
83
  this.Variables = variables ?? {};
50
84
  }
51
85
  resolve() {
@@ -53,89 +87,317 @@ let FrameworkLogger = class FrameworkLogger extends log_common_1.Log {
53
87
  if (!config) {
54
88
  throw new Error(`Configuration module is not avaible. Please resolve configuration module before any logging can occur`);
55
89
  }
56
- this.Options = config.get("logger", {
57
- targets: [
90
+ // read the logger config and default per-subkey - the `logger` key always
91
+ // exists now ( the package ships logger.file defaults ), so a whole-object
92
+ // fallback would never apply. targets / rules still fall back individually.
93
+ const configured = config.get("logger", {});
94
+ this.Options = {
95
+ ...configured,
96
+ targets: configured.targets ?? [
58
97
  {
59
98
  name: "Console",
60
99
  type: "ConsoleTarget",
61
100
  },
62
101
  ],
63
- rules: [{ name: "*", level: "trace", target: "Console" }],
64
- });
102
+ rules: configured.rules ?? [{ name: "*", level: "trace", target: "Console" }],
103
+ };
65
104
  // make unique targets
66
105
  // some modules may add same logger so we have multiple console loggers etc.
67
106
  this.Options.targets = lodash_1.default.uniqWith(this.Options.targets, (a, b) => {
68
107
  return a.name === b.name && a.type === b.type;
69
108
  });
109
+ // Composable filter pipeline. Each configured filter is resolved by its DI
110
+ // string name ( same mechanism as targets, see resolveLogTargets ) with its
111
+ // own config entry passed as options, and applied IN ORDER in write().
112
+ //
113
+ // BACKWARD COMPAT: the legacy `logger.whenRepeated` option is mapped to a
114
+ // WhenRepeatedFilter PREPENDED to the list so existing configs keep working.
115
+ const configuredFilters = this.Options.filters ?? [];
116
+ const filterSpecs = this.Options.whenRepeated ? [{ type: "WhenRepeatedFilter", ...this.Options.whenRepeated }, ...configuredFilters] : configuredFilters;
117
+ this.Filters = filterSpecs.map((f) => di_1.DI.resolve(f.type, [f]));
70
118
  this.matchRulesToLogger();
71
119
  this.resolveLogTargets();
120
+ // Gate ${callsite} capture: only turn it on when some resolved target's
121
+ // layout actually references it. When off, wrapWrite never builds an Error.
122
+ this.CaptureCallsite = this.Targets.some((t) => typeof t.instance?.Options?.layout === "string" && /\$\{callsite/.test(t.instance.Options.layout));
123
+ // MinLevel = the lowest level any matched rule ( ie. any target ) accepts.
124
+ // A call below this level would be dropped by every target, so the per-method
125
+ // isEnabled() guard can short-circuit on it without changing output.
126
+ this.MinLevel = this.Rules.length ? Math.min(...this.Rules.map((r) => log_common_1.StrToLogLevel[r.level])) : log_common_1.LogLevel.Trace;
127
+ // Load any browser-persisted runtime override ( no-op / undefined on Node ).
128
+ const persisted = (0, log_common_1.readPersistedLevel)(this.Name);
129
+ if (persisted !== undefined) {
130
+ this.LevelOverride = persisted;
131
+ }
72
132
  super.resolve();
73
133
  log_common_1.Log.Loggers.set(this.Name, this);
74
134
  }
75
135
  trace(err, message, ...args) {
136
+ if (!this.isEnabled(log_common_1.LogLevel.Trace))
137
+ return;
76
138
  wrapWrite.apply(this, [log_common_1.LogLevel.Trace])(err, message, ...args);
77
139
  }
78
140
  debug(err, message, ...args) {
141
+ if (!this.isEnabled(log_common_1.LogLevel.Debug))
142
+ return;
79
143
  wrapWrite.apply(this, [log_common_1.LogLevel.Debug])(err, message, ...args);
80
144
  }
81
145
  info(err, message, ...args) {
146
+ if (!this.isEnabled(log_common_1.LogLevel.Info))
147
+ return;
82
148
  wrapWrite.apply(this, [log_common_1.LogLevel.Info])(err, message, ...args);
83
149
  }
84
150
  warn(err, message, ...args) {
151
+ if (!this.isEnabled(log_common_1.LogLevel.Warn))
152
+ return;
85
153
  wrapWrite.apply(this, [log_common_1.LogLevel.Warn])(err, message, ...args);
86
154
  }
87
155
  error(err, message, ...args) {
156
+ if (!this.isEnabled(log_common_1.LogLevel.Error))
157
+ return;
88
158
  wrapWrite.apply(this, [log_common_1.LogLevel.Error])(err, message, ...args);
89
159
  }
90
160
  fatal(err, message, ...args) {
161
+ if (!this.isEnabled(log_common_1.LogLevel.Fatal))
162
+ return;
91
163
  wrapWrite.apply(this, [log_common_1.LogLevel.Fatal])(err, message, ...args);
92
164
  }
93
165
  security(err, message, ...args) {
166
+ if (!this.isEnabled(log_common_1.LogLevel.Security))
167
+ return;
94
168
  wrapWrite.apply(this, [log_common_1.LogLevel.Security])(err, message, ...args);
95
169
  }
96
170
  success(err, message, ...args) {
171
+ if (!this.isEnabled(log_common_1.LogLevel.Success))
172
+ return;
97
173
  wrapWrite.apply(this, [log_common_1.LogLevel.Success])(err, message, ...args);
98
174
  }
99
175
  write(entry) {
100
176
  if (entry.Variables.logger === this.Name) {
101
- return Promise.allSettled(this.Targets.filter((t) => entry.Level >= log_common_1.StrToLogLevel[t.rule.level]).map((t) => {
177
+ // Composable filter pipeline - run the entry through each configured filter
178
+ // IN ORDER. A filter returns the ( possibly modified ) entry to keep, or
179
+ // null to DROP it, in which case dispatch is skipped entirely. Runs AFTER
180
+ // the near-zero-cost level gate in the log methods so disabled levels never
181
+ // even reach the filters.
182
+ let filtered = entry;
183
+ for (const f of this.Filters) {
184
+ filtered = f.apply(filtered);
185
+ if (!filtered) {
186
+ return Promise.resolve([]);
187
+ }
188
+ }
189
+ const kept = filtered;
190
+ return Promise.allSettled(
191
+ // WINDOW membership: dispatch to a target when the entry's level falls in
192
+ // ANY of the target's `ranges` ( a min-only rule yields [min, Security],
193
+ // so this is unchanged for existing configs ).
194
+ this.Targets.filter((t) => t.ranges.some((w) => kept.Level >= w.min && kept.Level <= w.max)).map((t) => {
195
+ // PER-TARGET filters run AFTER the logger-level pipeline, for this
196
+ // target ONLY. A filter may MUTATE the entry ( eg. WhenRepeated's (xN) ),
197
+ // so isolate a per-target clone BEFORE applying them - only when this
198
+ // target actually has filters - so mutation never bleeds into others.
199
+ let e = kept;
200
+ if (t.filters && t.filters.length) {
201
+ e = { Level: kept.Level, Variables: { ...kept.Variables } };
202
+ for (const tf of t.filters) {
203
+ e = tf.apply(e);
204
+ if (!e)
205
+ break;
206
+ }
207
+ }
208
+ // a target filter dropped it for THIS target only
209
+ if (!e)
210
+ return Promise.resolve();
102
211
  if (!t.instance) {
103
212
  throw new exceptions_1.InvalidOperation(`Target ${t.rule.target} for rule ${t.rule.name} not exists`);
104
213
  }
105
- return t.instance.write(entry);
214
+ return t.instance.write(e);
106
215
  }));
107
216
  }
108
217
  return Promise.resolve([]);
109
218
  }
110
219
  resolveLogTargets() {
111
- this.Targets = this.Rules.map((r) => {
220
+ // BUG 2 fix: multiple matched rules can route to the SAME target. The old
221
+ // code built one descriptor PER (rule, target) pair, so write() dispatched
222
+ // to that target once per rule - duplicating output. Collapse to ONE
223
+ // descriptor per target definition, keeping the MOST PERMISSIVE ( lowest )
224
+ // rule level so the target receives an entry if ANY routing rule allows that
225
+ // level, exactly once ( write() filters via kept.Level >= rule.level ). We
226
+ // key by the target-config object ( a stable reference in Options.targets )
227
+ // rather than the resolved instance so this is correct regardless of the
228
+ // target's DI lifetime ( a @NewInstance target would otherwise still yield
229
+ // one fresh instance per rule and never collapse ). Each unique target is
230
+ // therefore resolved exactly ONCE.
231
+ //
232
+ // WINDOWS: a rule now carries a level WINDOW `[level, maxLevel ?? Security]`
233
+ // and several rules can route to the SAME target with DIFFERENT windows, so
234
+ // one min-level is not enough. We collect ALL windows per target ( their
235
+ // UNION ) into `ranges`, and keep the representative `rule` as the one with
236
+ // the LOWEST min ( used for the "no target" error and back-compat ).
237
+ const byTarget = new Map();
238
+ for (const r of this.Rules) {
239
+ const wantedNames = Array.isArray(r.target) ? r.target : [r.target];
240
+ // Resolve the rule's target NAMES to definitions. Distinguish two cases:
241
+ // - a named target exists but is `enabled: false` -> intentionally not
242
+ // routed, skip it silently ( and do NOT instantiate it below ).
243
+ // - a name matches NO defined target at all -> misconfig ( BUG 3 ), throw.
244
+ // So `namedButMissing` = wanted names with no matching def AT ALL; disabled
245
+ // matches DO count as "the name exists" and are simply not collected.
246
+ const namedButMissing = wantedNames.filter((n) => !this.Options.targets.some((t) => t.name === n));
247
+ if (namedButMissing.length > 0) {
248
+ throw new exceptions_1.InvalidOption(`No target matching rule ${r.name} ( wanted target(s): ${namedButMissing.join(", ")} )`);
249
+ }
250
+ // EXCLUDE disabled targets before dedupe/resolve so they are never built.
112
251
  const found = this.Options.targets.filter((t) => {
113
- return Array.isArray(r.target) ? r.target.includes(t.name) : r.target === t.name;
252
+ return wantedNames.includes(t.name) && t.enabled !== false;
114
253
  });
115
- if (!found) {
116
- throw new exceptions_1.InvalidOption(`No target matching rule ${r.name}`);
254
+ const window = {
255
+ min: log_common_1.StrToLogLevel[r.level],
256
+ max: r.maxLevel ? log_common_1.StrToLogLevel[r.maxLevel] : log_common_1.LogLevel.Security,
257
+ };
258
+ for (const f of found) {
259
+ const existing = byTarget.get(f);
260
+ if (!existing) {
261
+ byTarget.set(f, { rule: r, ranges: [window] });
262
+ }
263
+ else {
264
+ existing.ranges.push(window);
265
+ // keep the representative rule as the one with the LOWEST min level
266
+ if (window.min < log_common_1.StrToLogLevel[existing.rule.level]) {
267
+ existing.rule = r;
268
+ }
269
+ }
117
270
  }
118
- return found.map((f) => {
119
- return {
120
- instance: di_1.DI.resolve(f.type, [f]),
121
- options: f,
122
- rule: r,
123
- };
124
- });
125
- }).reduce((prev, curr) => prev.concat(...curr), []);
271
+ }
272
+ this.Targets = [...byTarget.entries()].map(([f, r]) => this.buildTargetDesc(f, r.ranges, r.rule));
273
+ }
274
+ /**
275
+ * Build one {@link ILogTargetDesc } from a target definition, its level
276
+ * WINDOWS and a representative rule. Shared by config-time
277
+ * {@link resolveLogTargets } and the runtime {@link addTarget } so both
278
+ * resolve the target instance and its per-target filters the SAME way:
279
+ * the target class is resolved by its DI string `type`, and each per-target
280
+ * filter spec is resolved by its DI string `type` ( @NewInstance => per-use
281
+ * state ).
282
+ */
283
+ buildTargetDesc(def, ranges, rule) {
284
+ return {
285
+ instance: di_1.DI.resolve(def.type, [def]),
286
+ options: def,
287
+ rule,
288
+ ranges,
289
+ filters: (def.filters ?? []).map((spec) => di_1.DI.resolve(spec.type, [spec])),
290
+ };
291
+ }
292
+ /**
293
+ * Recompute the two cheap gates that {@link write } / the per-method
294
+ * isEnabled() guard rely on, so they stay correct after the target set
295
+ * changes at runtime ( {@link addTarget } / {@link removeTarget } ):
296
+ * - MinLevel = lowest `min` across all attached targets' windows ( floor
297
+ * Trace when there are none ), so a call below it is short-circuited.
298
+ * - CaptureCallsite = true iff some attached target's layout references
299
+ * ${callsite}, gating the caller-frame capture in wrapWrite.
300
+ */
301
+ recomputeGates() {
302
+ const mins = this.Targets.flatMap((t) => t.ranges.map((w) => w.min));
303
+ this.MinLevel = mins.length ? Math.min(...mins) : log_common_1.LogLevel.Trace;
304
+ this.CaptureCallsite = this.Targets.some((t) => typeof t.instance?.Options?.layout === "string" && /\$\{callsite/.test(t.instance.Options.layout));
305
+ }
306
+ /**
307
+ * Attach a sink to THIS logger AT RUNTIME, without touching config. Resolves
308
+ * the target ( and its per-target filters ) exactly as config-time routing
309
+ * does, then recomputes the MinLevel / ${callsite} gates so dispatch stays
310
+ * correct. Returns the resolved instance, or `undefined` when nothing was
311
+ * attached ( `def.enabled === false` ).
312
+ *
313
+ * A level WINDOW `[opts.level ?? "trace", opts.maxLevel ?? security]` is
314
+ * applied ( same semantics as a routing rule's window ). Adding a target
315
+ * whose name already exists REPLACES the existing descriptor(s) ( the old
316
+ * instance is flushed first ) so a name is never duplicated.
317
+ *
318
+ * `opts.filters` are APPENDED to any `def.filters` ( def first, opts last ).
319
+ */
320
+ addTarget(def, opts) {
321
+ // Consistent with config-time skip: a disabled def is never instantiated.
322
+ if (def.enabled === false) {
323
+ return undefined;
324
+ }
325
+ const levelName = opts?.level ?? "trace";
326
+ if (!(levelName in log_common_1.StrToLogLevel)) {
327
+ throw new exceptions_1.InvalidOption(`addTarget: invalid level '${levelName}'`);
328
+ }
329
+ if (opts?.maxLevel !== undefined && !(opts.maxLevel in log_common_1.StrToLogLevel)) {
330
+ throw new exceptions_1.InvalidOption(`addTarget: invalid maxLevel '${opts.maxLevel}'`);
331
+ }
332
+ const window = {
333
+ min: log_common_1.StrToLogLevel[levelName],
334
+ max: opts?.maxLevel ? log_common_1.StrToLogLevel[opts.maxLevel] : log_common_1.LogLevel.Security,
335
+ };
336
+ // Merge opts.filters AFTER def.filters ( def first, opts appended ).
337
+ const mergedDef = opts?.filters && opts.filters.length ? { ...def, filters: [...(def.filters ?? []), ...opts.filters] } : def;
338
+ // REPLACE any existing same-named descriptor(s) - flush them first so no
339
+ // buffered entry is lost, then drop them ( do NOT dispose; the instance may
340
+ // be DI-owned / shared ).
341
+ const stale = this.Targets.filter((t) => t.options?.name === def.name);
342
+ for (const t of stale) {
343
+ void t.instance.forceFlush();
344
+ }
345
+ this.Targets = this.Targets.filter((t) => t.options?.name !== def.name);
346
+ // Synthesize a representative rule mirroring the window for back-compat /
347
+ // the "no target" error path.
348
+ const rule = { name: this.Name, level: levelName, maxLevel: opts?.maxLevel, target: def.name };
349
+ const desc = this.buildTargetDesc(mergedDef, [window], rule);
350
+ this.Targets.push(desc);
351
+ this.recomputeGates();
352
+ return desc.instance;
353
+ }
354
+ /**
355
+ * Detach a runtime sink by its target `name`. Each matching descriptor's
356
+ * instance is force-flushed ( to drain buffered entries ) BEFORE removal - it
357
+ * is NOT disposed, since the instance may be shared / DI-owned. Recomputes the
358
+ * gates afterwards. No-op when no target with that name is attached.
359
+ */
360
+ async removeTarget(name) {
361
+ const matched = this.Targets.filter((t) => t.options?.name === name);
362
+ if (matched.length === 0) {
363
+ return;
364
+ }
365
+ await Promise.allSettled(matched.map((t) => t.instance.forceFlush()));
366
+ this.Targets = this.Targets.filter((t) => t.options?.name !== name);
367
+ this.recomputeGates();
126
368
  }
127
369
  matchRulesToLogger() {
128
- const matchingRules = this.Options.rules.filter((r) => {
129
- const g = (0, glob_to_regexp_1.default)(r.name);
130
- // BUG: g.test throws vscode err ?
131
- return g.test(this.Name);
132
- });
133
- // Check if there are any specific (non-wildcard) rules
134
- const hasSpecificRule = matchingRules.some((r) => r.name !== '*');
135
- // If specific rules exist, exclude wildcard rules
136
- this.Rules = hasSpecificRule
137
- ? matchingRules.filter((r) => r.name !== '*')
138
- : matchingRules;
370
+ // NLog-style ordered, ADDITIVE evaluation. Walk the rules IN CONFIG ORDER
371
+ // and collect EVERY rule whose glob matches this logger ( so a logger matched
372
+ // by both `*` and a specific rule routes to BOTH - de-duped by target in
373
+ // resolveLogTargets ). A matched rule with `final: true` STOPS evaluation of
374
+ // any LATER rules ( that final rule and all earlier matched rules still apply
375
+ // ) - place a specific `final` rule before `*` to get this-rule-only routing.
376
+ const matched = [];
377
+ for (const r of this.Options.rules) {
378
+ if (typeof r.name !== "string") {
379
+ throw new exceptions_1.InvalidOption(`Log rule name must be a string, got ${typeof r.name}`);
380
+ }
381
+ // Guard: an invalid level would leave StrToLogLevel[level] === undefined,
382
+ // poisoning MinLevel ( Math.min(..., NaN) === NaN ) and the write() dispatch
383
+ // gate, silently killing the logger. Schema validates config; this guards
384
+ // programmatic / default rule paths too.
385
+ if (!(r.level in log_common_1.StrToLogLevel)) {
386
+ throw new exceptions_1.InvalidOption(`Log rule ${r.name} has invalid level '${r.level}'`);
387
+ }
388
+ // Same guard for the optional upper bound: an invalid maxLevel would make
389
+ // StrToLogLevel[maxLevel] === undefined and poison the window test.
390
+ if (r.maxLevel !== undefined && !(r.maxLevel in log_common_1.StrToLogLevel)) {
391
+ throw new exceptions_1.InvalidOption(`Log rule ${r.name} has invalid maxLevel '${r.maxLevel}'`);
392
+ }
393
+ if (globFor(r.name).test(this.Name)) {
394
+ matched.push(r);
395
+ if (r.final) {
396
+ break;
397
+ }
398
+ }
399
+ }
400
+ this.Rules = matched;
139
401
  }
140
402
  };
141
403
  exports.FrameworkLogger = FrameworkLogger;
@@ -1 +1 @@
1
- {"version":3,"file":"log.js","sourceRoot":"","sources":["../../src/log.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"log.js","sourceRoot":"","sources":["../../src/log.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ import { Log, PerfSink, IPerfMetric, IPerfRollup } from "@spinajs/log-common";
2
+ /**
3
+ * Default {@link PerfSink}: renders perf measurements as structured log entries
4
+ * through the normal targets/filters/rules pipeline, on a dedicated `perf`
5
+ * logger. Spans over their per-name threshold log at `warn`; under-threshold
6
+ * spans log at `trace` ( kept for on-demand visibility, cheaply gated out when
7
+ * trace routing is off ). Rollups log one `info` line.
8
+ */
9
+ export declare class LogMetricSink extends PerfSink {
10
+ protected Log: Log;
11
+ protected Enabled: boolean;
12
+ protected Thresholds: Record<string, number>;
13
+ protected OverLevel: "warn" | "error" | "info" | "debug" | "trace";
14
+ protected UnderLevel: "warn" | "error" | "info" | "debug" | "trace";
15
+ protected LogCounters: boolean;
16
+ protected SqlMaxLength: number;
17
+ /**
18
+ * Emit a log entry for spans that came in UNDER their threshold.
19
+ *
20
+ * - `false` ( default ) never; a bare `orm.query: 15.2ms` says nothing actionable
21
+ * and a single request produces hundreds of them,
22
+ * - `true` for every metric,
23
+ * - a list of metric names to trace just those, eg. `['orm.query']` for a full db
24
+ * query trace without dragging in `email.send` and `template.*`, which share
25
+ * this same logger.
26
+ *
27
+ * Over-threshold and failed spans are always logged regardless of this setting,
28
+ * and the measurements themselves are never affected - they still reach every
29
+ * other sink and the per-request rollup. This only controls per-span log lines.
30
+ */
31
+ protected LogUnderThreshold: boolean | string[];
32
+ private logsUnderThreshold;
33
+ private thresholdFor;
34
+ /**
35
+ * Renders the statement into the message. The `sql` field is already attached to
36
+ * the entry, but most console layouts print only `${message}`, so
37
+ * "Slow orm.query: 251.1ms" on its own gives no way to tell WHICH query it was.
38
+ *
39
+ * Bindings are deliberately left out of the message - they routinely hold
40
+ * passwords, tokens and personal data. They stay in the structured fields, where a
41
+ * target can opt into them.
42
+ */
43
+ private sqlSuffix;
44
+ collect(metric: IPerfMetric): void;
45
+ onScopeEnd(rollup: IPerfRollup): void;
46
+ /**
47
+ * Emit through the log's MERGING-OBJECT form ( fields object FIRST, then the
48
+ * message string ) so the structured variables ( durationMs, labels, sql,
49
+ * error ) are attached to the entry. The `@spinajs/log` API treats a trailing
50
+ * object as a printf argument, so passing fields last would silently drop
51
+ * them. See the `warn(fields, message?)` overload on the `Log` base class.
52
+ */
53
+ private emitAt;
54
+ }
55
+ //# sourceMappingURL=LogMetricSink.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LogMetricSink.d.ts","sourceRoot":"","sources":["../../../src/perf/LogMetricSink.ts"],"names":[],"mappings":"AAEA,OAAO,EAAU,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEtF;;;;;;GAMG;AACH,qBAEa,aAAc,SAAQ,QAAQ;IAEzC,SAAS,CAAC,GAAG,EAAG,GAAG,CAAC;IAGpB,SAAS,CAAC,OAAO,EAAG,OAAO,CAAC;IAG5B,SAAS,CAAC,UAAU,EAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAG9C,SAAS,CAAC,SAAS,EAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;IAGpE,SAAS,CAAC,UAAU,EAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;IAGrE,SAAS,CAAC,WAAW,EAAG,OAAO,CAAC;IAGhC,SAAS,CAAC,YAAY,EAAG,MAAM,CAAC;IAEhC;;;;;;;;;;;;;OAaG;IAEH,SAAS,CAAC,iBAAiB,EAAG,OAAO,GAAG,MAAM,EAAE,CAAC;IAEjD,OAAO,CAAC,kBAAkB;IAK1B,OAAO,CAAC,YAAY;IAKpB;;;;;;;;OAQG;IACH,OAAO,CAAC,SAAS;IAcV,OAAO,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IA+BlC,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAc5C;;;;;;OAMG;IACH,OAAO,CAAC,MAAM;CAmBf"}