Commit 4add487
authored
build(lint): printf/console.log format specifiers must match args #5895
## Problem
currently `logger.error(msg, err)` silently drops `err` if it doesn't
map to a `%x` format specifier in msg.
we want to either prevent that mistake, or enhance our logger so that it
prints useful parts of err instead of silently dropping it.
Also, there are cases like:
`getLogger().error('Certificate path {0} already exists', certPath)`,
but this silently drops the arg `certPath`. Pretty sure this syntax is
from Java IIRC and not supported by Node.
## Solution
Provide a custom lint rule to ensure the number of extra args matches
the number of format specifiers.
### Note About Alternatives
- As an alternative, we could have transformed the extra `meta` items to
strings and appended them to the log message or add them as separate log
messages. This would allow usage of the form `getLogger().error('hit
error', e)`.
- If we add separate log messages, we break the expectation that each
`logger.error` statement corresponds to one message in the log.
- Conversely, if we append to the log message, this is somewhat of a
hidden feature not exposed to the consumer. By forcing them to add a
'%O' format specifier, we are making them clearly aware of how the error
(or other object) will show up in the log, ensuring the effect does not
"surprise" the user.
## Notes
Relevant: code used to format errors:
https://github.com/aws/aws-toolkit-vscode/blob/f806ae04f5d56b872282e42d5f765b2b1a9e28dd/packages/core/src/shared/errors.ts#L329-L334
which should now actually be used since errors won't be dropped.1 parent e817c2d commit 4add487
File tree
33 files changed
+133
-36
lines changed- packages/core/src
- applicationcomposer/messageHandlers
- awsService
- appBuilder/explorer
- nodes
- iot/commands
- redshift/explorer
- s3/commands
- codewhisperer
- client
- commands
- util
- lambda
- vue
- configEditor
- remoteInvoke
- wizards
- login/webview/vue/toolkit
- ssmDocument/commands
- test
- awsService/appBuilder
- lambda/vue
- remoteInvoke
- plugins/eslint-plugin-aws-toolkits
- lib/rules
- test/rules
33 files changed
+133
-36
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
163 | 163 | | |
164 | 164 | | |
165 | 165 | | |
| 166 | + | |
166 | 167 | | |
167 | 168 | | |
168 | 169 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
67 | 67 | | |
68 | 68 | | |
69 | 69 | | |
70 | | - | |
| 70 | + | |
71 | 71 | | |
72 | 72 | | |
73 | 73 | | |
| |||
Lines changed: 2 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
96 | 96 | | |
97 | 97 | | |
98 | 98 | | |
99 | | - | |
| 99 | + | |
100 | 100 | | |
101 | 101 | | |
102 | 102 | | |
| |||
153 | 153 | | |
154 | 154 | | |
155 | 155 | | |
156 | | - | |
| 156 | + | |
157 | 157 | | |
158 | 158 | | |
159 | 159 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
42 | 42 | | |
43 | 43 | | |
44 | 44 | | |
45 | | - | |
| 45 | + | |
46 | 46 | | |
47 | 47 | | |
48 | 48 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
115 | 115 | | |
116 | 116 | | |
117 | 117 | | |
118 | | - | |
| 118 | + | |
119 | 119 | | |
120 | 120 | | |
121 | 121 | | |
122 | 122 | | |
123 | 123 | | |
124 | 124 | | |
125 | | - | |
| 125 | + | |
126 | 126 | | |
127 | 127 | | |
128 | 128 | | |
| |||
133 | 133 | | |
134 | 134 | | |
135 | 135 | | |
136 | | - | |
| 136 | + | |
137 | 137 | | |
138 | 138 | | |
139 | 139 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
127 | 127 | | |
128 | 128 | | |
129 | 129 | | |
130 | | - | |
| 130 | + | |
131 | 131 | | |
132 | 132 | | |
133 | 133 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
415 | 415 | | |
416 | 416 | | |
417 | 417 | | |
418 | | - | |
| 418 | + | |
419 | 419 | | |
420 | 420 | | |
421 | 421 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
618 | 618 | | |
619 | 619 | | |
620 | 620 | | |
621 | | - | |
| 621 | + | |
622 | 622 | | |
623 | 623 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
82 | 82 | | |
83 | 83 | | |
84 | 84 | | |
85 | | - | |
| 85 | + | |
86 | 86 | | |
87 | 87 | | |
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
225 | 225 | | |
226 | 226 | | |
227 | 227 | | |
228 | | - | |
| 228 | + | |
229 | 229 | | |
230 | 230 | | |
231 | 231 | | |
| |||
0 commit comments