(log)
| 97 | } |
| 98 | |
| 99 | function interpolateMsg(log) { |
| 100 | if (!log.msg) return; |
| 101 | |
| 102 | if (!log.attr) return; |
| 103 | |
| 104 | for (const key in log.attr) { |
| 105 | if (Reflect.has(log.attr, key)) { |
| 106 | log.msg = log.msg.split(`{${key}}`).join(`${JSON.stringify(log.attr[key])}`); |
| 107 | delete log.attr[key]; |
| 108 | } |
| 109 | } |
| 110 | |
| 111 | if (Object.keys(log.attr).length === 0) delete log.attr; |
| 112 | log.msg = log.msg.split(`"`).join(`'`); |
| 113 | } |
| 114 | |
| 115 | function friendlyDate(log) { |
| 116 | const dateString = typeof log.t === 'string' ? log.t : log.t.$date; |