Skip to content

Commit b874afc

Browse files
authored
fix: put in real system logger (#177)
* fix: put in real system logger * fix: mute system logs in netlify dev
1 parent ac310c7 commit b874afc

File tree

1 file changed

+1
-61
lines changed

1 file changed

+1
-61
lines changed

src/run/systemlog.ts

+1-61
Original file line numberDiff line numberDiff line change
@@ -1,61 +1 @@
1-
const systemLogTag = '__nfSystemLog'
2-
3-
const serializeError = (error: Error): Record<string, unknown> => {
4-
const cause = error?.cause instanceof Error ? serializeError(error.cause) : error.cause
5-
6-
return {
7-
error: error.message,
8-
error_cause: cause,
9-
error_stack: error.stack,
10-
}
11-
}
12-
13-
export class StructuredLogger {
14-
private fields: Record<string, unknown>
15-
private message: string
16-
17-
constructor(message?: string, fields?: Record<string, unknown>) {
18-
this.fields = fields ?? {}
19-
this.message = message ?? ''
20-
}
21-
22-
// TODO: add sampling
23-
private doLog(logger: typeof console.log, message: string) {
24-
logger(systemLogTag, JSON.stringify({ msg: message, fields: this.fields }))
25-
}
26-
27-
log(message: string) {
28-
this.doLog(console.log, message)
29-
}
30-
31-
info(message: string) {
32-
this.doLog(console.info, message)
33-
}
34-
35-
debug(message: string) {
36-
this.doLog(console.debug, message)
37-
}
38-
39-
warn(message: string) {
40-
this.doLog(console.warn, message)
41-
}
42-
43-
error(message: string) {
44-
this.doLog(console.error, message)
45-
}
46-
47-
withError(error: unknown) {
48-
const fields = error instanceof Error ? serializeError(error) : { error }
49-
50-
return this.withFields(fields)
51-
}
52-
53-
withFields(fields: Record<string, unknown>) {
54-
return new StructuredLogger(this.message, {
55-
...this.fields,
56-
...fields,
57-
})
58-
}
59-
}
60-
61-
export const logger = new StructuredLogger()
1+
export { systemLogger as logger, LogLevel } from '@netlify/functions/dist/internal.js'

0 commit comments

Comments
 (0)