azify-logger 1.0.13 → 1.0.14

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.
package/index.js CHANGED
@@ -73,7 +73,7 @@ class AzifyLogger {
73
73
  })
74
74
  } catch (_) {}
75
75
 
76
- await axios.post(`${this.options.loggerUrl}/log`, logData, {
76
+ await axios.post(`${this.options.loggerUrl}`, logData, {
77
77
  timeout: 5000,
78
78
  headers
79
79
  })
@@ -18,3 +18,4 @@ declare function createExpressLoggingMiddleware(options?: {
18
18
  }): ExpressMiddleware;
19
19
 
20
20
  export default createExpressLoggingMiddleware;
21
+
@@ -71,6 +71,55 @@ function createExpressLoggingMiddleware(options = {}) {
71
71
  const requestTraceId = req.__azifyTraceId
72
72
  const requestSpanId = req.__azifySpanId
73
73
  const requestParentSpanId = req.__azifyParentSpanId
74
+
75
+ // Store original console methods
76
+ const originalConsole = {
77
+ log: console.log,
78
+ info: console.info,
79
+ warn: console.warn,
80
+ error: console.error
81
+ }
82
+
83
+ // Override console methods to use the request context
84
+ console.log = (...args) => {
85
+ const message = args.map(String).join(' ')
86
+ sendLog('info', message, {
87
+ traceId: requestTraceId,
88
+ spanId: requestSpanId,
89
+ parentSpanId: requestParentSpanId,
90
+ requestId: requestId
91
+ })
92
+ }
93
+
94
+ console.info = (...args) => {
95
+ const message = args.map(String).join(' ')
96
+ sendLog('info', message, {
97
+ traceId: requestTraceId,
98
+ spanId: requestSpanId,
99
+ parentSpanId: requestParentSpanId,
100
+ requestId: requestId
101
+ })
102
+ }
103
+
104
+ console.warn = (...args) => {
105
+ const message = args.map(String).join(' ')
106
+ sendLog('warn', message, {
107
+ traceId: requestTraceId,
108
+ spanId: requestSpanId,
109
+ parentSpanId: requestParentSpanId,
110
+ requestId: requestId
111
+ })
112
+ }
113
+
114
+ console.error = (...args) => {
115
+ const message = args.map(String).join(' ')
116
+ sendLog('error', message, {
117
+ traceId: requestTraceId,
118
+ spanId: requestSpanId,
119
+ parentSpanId: requestParentSpanId,
120
+ requestId: requestId
121
+ })
122
+ }
74
123
 
75
124
  let baseUrl = req.url
76
125
  if (baseUrl.includes('?')) {
@@ -108,6 +157,11 @@ function createExpressLoggingMiddleware(options = {}) {
108
157
  logResponse()
109
158
  responseLogged = true
110
159
  }
160
+ // Restore original console methods
161
+ console.log = originalConsole.log
162
+ console.info = originalConsole.info
163
+ console.warn = originalConsole.warn
164
+ console.error = originalConsole.error
111
165
  })
112
166
 
113
167
  res.on('close', () => {
@@ -115,6 +169,11 @@ function createExpressLoggingMiddleware(options = {}) {
115
169
  logResponse()
116
170
  responseLogged = true
117
171
  }
172
+ // Restore original console methods
173
+ console.log = originalConsole.log
174
+ console.info = originalConsole.info
175
+ console.warn = originalConsole.warn
176
+ console.error = originalConsole.error
118
177
  })
119
178
 
120
179
  let sentBody
@@ -1,3 +1,14 @@
1
+ /**
2
+ * Creates a Restify middleware for automatic request/response logging with azify-logger
3
+ * @param {Object} options - Configuration options
4
+ * @param {string} [options.serviceName] - Name of the service (defaults to APP_NAME env var or 'azipay')
5
+ * @param {string} [options.loggerUrl] - URL of the azify-logger service (defaults to AZIFY_LOGGER_URL env var or 'http://localhost:3001')
6
+ * @param {string} [options.environment] - Environment name (defaults to NODE_ENV env var or 'development')
7
+ * @returns {Function} Restify middleware function
8
+ * @example
9
+ * const azifyMiddleware = require('azify-logger/middleware-restify');
10
+ * server.use(azifyMiddleware({ serviceName: 'my-app' }));
11
+ */
1
12
  const axios = require('axios')
2
13
  const { als, runWithRequestContext, startRequestContext, getRequestContext } = require('./store')
3
14
 
@@ -25,7 +36,7 @@ function createRestifyLoggingMiddleware(options = {}) {
25
36
  }
26
37
 
27
38
  try {
28
- await axios.post(`${config.loggerUrl}/log`, logData, {
39
+ await axios.post(`${config.loggerUrl}`, logData, {
29
40
  timeout: 5000
30
41
  })
31
42
  } catch (error) {}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "azify-logger",
3
- "version": "1.0.13",
3
+ "version": "1.0.14",
4
4
  "description": "Azify Logger Client - Centralized logging for OpenSearch",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
package/server.js CHANGED
@@ -167,6 +167,23 @@ app.post('/log', async (req, res) => {
167
167
  return res.status(400).json({ success: false, message: 'Level and message are required.' })
168
168
  }
169
169
 
170
+ // Filtrar logs verbosos do Prisma e outros logs desnecessários
171
+ const shouldFilterLog = (
172
+ message.includes('prisma:query') ||
173
+ message.includes('prisma:info') ||
174
+ message.includes('Starting a mysql pool') ||
175
+ message.includes('SELECT `') ||
176
+ message.includes('INSERT `') ||
177
+ message.includes('UPDATE `') ||
178
+ message.includes('DELETE `') ||
179
+ message.includes('%s: %s') ||
180
+ message.includes('Application Startup Time')
181
+ )
182
+
183
+ if (shouldFilterLog) {
184
+ return res.json({ success: true, message: 'Log filtrado (Prisma verboso)' })
185
+ }
186
+
170
187
  const requestId = meta?.requestId
171
188
 
172
189
  let traceContext = null
@@ -0,0 +1,19 @@
1
+ import { Writable } from 'stream';
2
+
3
+ export interface BunyanStreamOptions {
4
+ loggerUrl?: string;
5
+ serviceName?: string;
6
+ environment?: string;
7
+ }
8
+
9
+ /**
10
+ * Creates a Bunyan stream for azify-logger
11
+ * @param options - Configuration options
12
+ * @returns Writable stream
13
+ * @example
14
+ * const bunyanStream = require('azify-logger/streams/bunyan');
15
+ * const stream = bunyanStream({ loggerUrl: 'http://localhost:3001' });
16
+ */
17
+ declare function createBunyanStream(options?: BunyanStreamOptions): Writable;
18
+
19
+ export = createBunyanStream;
package/streams/bunyan.js CHANGED
@@ -52,7 +52,7 @@ function createBunyanStream(options = {}) {
52
52
 
53
53
  const payload = { level, message: record.msg || record.message || 'log', meta }
54
54
 
55
- axios.post(`${loggerUrl}/log`, payload, { headers, timeout: 3001 }).catch(() => {})
55
+ axios.post(`${loggerUrl}`, payload, { headers, timeout: 3001 }).catch(() => {})
56
56
  }
57
57
  }
58
58
  }
@@ -0,0 +1,19 @@
1
+ import { Transform } from 'stream';
2
+
3
+ export interface PinoStreamOptions {
4
+ loggerUrl?: string;
5
+ serviceName?: string;
6
+ environment?: string;
7
+ }
8
+
9
+ /**
10
+ * Creates a Pino stream for azify-logger
11
+ * @param options - Configuration options
12
+ * @returns Transform stream
13
+ * @example
14
+ * const pinoStream = require('azify-logger/streams/pino');
15
+ * const stream = pinoStream({ loggerUrl: 'http://localhost:3001' });
16
+ */
17
+ declare function createPinoStream(options?: PinoStreamOptions): Transform;
18
+
19
+ export = createPinoStream;
package/streams/pino.js CHANGED
@@ -47,7 +47,7 @@ function createPinoStream(options = {}) {
47
47
  }
48
48
 
49
49
  const payload = { level, message: record.msg || record.message || 'log', meta }
50
- axios.post(`${loggerUrl}/log`, payload, { headers, timeout: 3001 }).catch(() => {})
50
+ axios.post(`${loggerUrl}`, payload, { headers, timeout: 3001 }).catch(() => {})
51
51
  }
52
52
  }
53
53
  }