@@ -97,69 +97,71 @@ func main() {
9797Here's the execution of the example:
9898
9999```
100- $ go run examples/example1/example1.go
100+ $ go run examples/example1/example1.go
101101Error logged as a JSON structure using the JSON.MarshalIndent:
102- {
103- "message": "failed to complete the transaction on bank_123456",
104- "data": {
105- "transactionId": "tx_123456",
106- "userId": "67890"
102+ [
103+ {
104+ "data": {
105+ "transactionId": "tx_123456",
106+ "userId": "67890"
107+ },
108+ "message": "failed to complete the transaction on bank_123456",
109+ "stack": [
110+ "main.createTransaction @ /root/hack/errors/examples/example1/example1.go:13",
111+ "main.main @ /root/hack/errors/examples/example1/example1.go:52",
112+ "runtime/internal/atomic.(*Uint32).Load @ /root/go/version/go1.21.0/src/runtime/internal/atomic/types.go:194",
113+ "runtime.goexit @ /root/go/version/go1.21.0/src/runtime/asm_amd64.s:1651"
114+ ]
107115 },
108- "stack": [
109- "main.createTransaction @ /root/hack/errors/examples/example1/example1.go:13",
110- "main.main @ /root/hack/errors/examples/example1/example1.go:52",
111- "runtime/internal/atomic.(*Uint32).Load @ /root/go/version/go1.21.0/src/runtime/internal/atomic/types.go:194",
112- "runtime.goexit @ /root/go/version/go1.21.0/src/runtime/asm_amd64.s:1651"
113- ],
114- "cause": {
115- "message": "failed to update the database",
116+ {
116117 "data": {
117118 "operation": "update",
118119 "tableName": "transactions"
119120 },
121+ "message": "failed to update the database",
120122 "stack": [
121123 "main.updateDatabase @ /root/hack/errors/examples/example1/example1.go:24",
122124 "main.createTransaction @ /root/hack/errors/examples/example1/example1.go:12",
123125 "main.main @ /root/hack/errors/examples/example1/example1.go:52",
124126 "runtime/internal/atomic.(*Uint32).Load @ /root/go/version/go1.21.0/src/runtime/internal/atomic/types.go:194",
125127 "runtime.goexit @ /root/go/version/go1.21.0/src/runtime/asm_amd64.s:1651"
126- ],
127- "cause": {
128- "message": "connection timeout",
129- "data": {
130- "server": "db-server-01",
131- "timeoutSeconds": 30
132- },
133- "stack ": [
134- "main.createConnection @ /root/hack/errors/examples/example1/example1.go:35",
135- "main.updateDatabase @ /root/hack/errors/examples/example1/example1.go:23 ",
136- "main.createTransaction @ /root/hack/errors/examples/example1/example1.go:12 ",
137- "main.main @ /root/hack/errors/examples/example1/example1.go:52 ",
138- "runtime/internal/atomic.(*Uint32).Load @ /root/go/version/go1.21.0/src/runtime/internal/atomic/types .go:194 ",
139- "runtime.goexit @ /root/go/version/go1.21.0/src/runtime/asm_amd64.s:1651"
140- ],
141- "cause": {
142- "message": "network instability detected" ,
143- "data": {
144- "network ": "internal",
145- "severity ": "high"
146- },
147- "stack": [
148- "main.open @ /root/hack/errors/examples/example1/example1.go:45 ",
149- "main.createConnection @ /root/hack/errors/examples/example1/example1.go:34",
150- "main.updateDatabase @ /root/hack/errors/examples/example1/example1.go:23 ",
151- "main.createTransaction @ /root/hack/errors/examples/example1/example1.go:12 ",
152- "main.main @ /root/hack/errors/examples/example1/example1.go:52 ",
153- "runtime/internal/atomic.(*Uint32).Load @ /root/go/version/go1.21.0/src/runtime/internal/atomic/types .go:194 ",
154- "runtime.goexit @ /root/go/version/go1.21.0/src/runtime/asm_amd64.s:1651"
155- ]
156- }
157- }
128+ ]
129+ },
130+ {
131+ "data": {
132+ "server": "db-server-01",
133+ "timeoutSeconds": 30
134+ },
135+ "message ": "connection timeout",
136+ "stack": [
137+ "main.createConnection @ /root/hack/errors/examples/example1/example1.go:35 ",
138+ "main.updateDatabase @ /root/hack/errors/examples/example1/example1.go:23 ",
139+ "main.createTransaction @ /root/hack/errors/examples/example1/example1.go:12 ",
140+ "main.main @ /root/hack/errors/examples/example1/example1 .go:52 ",
141+ "runtime/internal/atomic.(*Uint32).Load @ /root/go/version/go1.21.0/src/runtime/internal/atomic/types.go:194",
142+ "runtime.goexit @ /root/go/version/go1.21.0/src/runtime/asm_amd64.s:1651"
143+ ]
144+ } ,
145+ {
146+ "data ": {
147+ "network ": "internal",
148+ "severity": "high"
149+ },
150+ "message": "network instability detected ",
151+ "stack": [
152+ "main.open @ /root/hack/errors/examples/example1/example1.go:45 ",
153+ "main.createConnection @ /root/hack/errors/examples/example1/example1.go:34 ",
154+ "main.updateDatabase @ /root/hack/errors/examples/example1/example1.go:23 ",
155+ "main.createTransaction @ /root/hack/errors/examples/example1/example1 .go:12 ",
156+ "main.main @ /root/hack/errors/examples/example1/example1.go:52",
157+ "runtime/internal/atomic.(*Uint32).Load @ /root/go/version/go1.21.0/src/runtime/internal/atomic/types.go:194",
158+ "runtime.goexit @ /root/go/version/go1.21.0/src/runtime/asm_amd64.s:1651"
159+ ]
158160 }
159- }
161+ ]
160162
161163Error logged as a JSON structure using the JSON.Marshal:
162- {"message":"failed to complete the transaction on bank_123456","data":{"transactionId":"tx_123456","userId":"67890"},"stack":["main.createTransaction @ /root/hack/errors/examples/example1/example1.go:13","main.main @ /root/hack/errors/examples/example1/example1.go:52","runtime/internal/atomic.(*Uint32).Load @ /root/go/version/go1.21.0/src/runtime/internal/atomic/types.go:194","runtime.goexit @ /root/go/version/go1.21.0/src/runtime/asm_amd64.s:1651"],"cause":{"message":"failed to update the database","data":{"operation":"update","tableName":"transactions"},"stack":["main.updateDatabase @ /root/hack/errors/examples/example1/example1.go:24","main.createTransaction @ /root/hack/errors/examples/example1/example1.go:12","main.main @ /root/hack/errors/examples/example1/example1.go:52","runtime/internal/atomic.(*Uint32).Load @ /root/go/version/go1.21.0/src/runtime/internal/atomic/types.go:194","runtime.goexit @ /root/go/version/go1.21.0/src/runtime/asm_amd64.s:1651"],"cause":{"message":"connection timeout","data":{"server":"db-server-01","timeoutSeconds":30},"stack":["main.createConnection @ /root/hack/errors/examples/example1/example1.go:35","main.updateDatabase @ /root/hack/errors/examples/example1/example1.go:23","main.createTransaction @ /root/hack/errors/examples/example1/example1.go:12","main.main @ /root/hack/errors/examples/example1/example1.go:52","runtime/internal/atomic.(*Uint32).Load @ /root/go/version/go1.21.0/src/runtime/internal/atomic/types.go:194","runtime.goexit @ /root/go/version/go1.21.0/src/runtime/asm_amd64.s:1651"],"cause":{"message":"network instability detected","data":{"network":"internal","severity":"high"},"stack":["main.open @ /root/hack/errors/examples/example1/example1.go:45","main.createConnection @ /root/hack/errors/examples/example1/example1.go:34","main.updateDatabase @ /root/hack/errors/examples/example1/example1.go:23","main.createTransaction @ /root/hack/errors/examples/example1/example1.go:12","main.main @ /root/hack/errors/examples/example1/example1.go:52","runtime/internal/atomic.(*Uint32).Load @ /root/go/version/go1.21.0/src/runtime/internal/atomic/types.go:194","runtime.goexit @ /root/go/version/go1.21.0/src/runtime/asm_amd64.s:1651"]}}}}
164+ [{"data":{"transactionId":"tx_123456","userId":"67890"},"message":"failed to complete the transaction on bank_123456","stack":["main.createTransaction @ /root/hack/errors/examples/example1/example1.go:13","main.main @ /root/hack/errors/examples/example1/example1.go:52","runtime/internal/atomic.(*Uint32).Load @ /root/go/version/go1.21.0/src/runtime/internal/atomic/types.go:194","runtime.goexit @ /root/go/version/go1.21.0/src/runtime/asm_amd64.s:1651"]},{"data":{"operation":"update","tableName":"transactions"},"message":"failed to update the database","stack":["main.updateDatabase @ /root/hack/errors/examples/example1/example1.go:24","main.createTransaction @ /root/hack/errors/examples/example1/example1.go:12","main.main @ /root/hack/errors/examples/example1/example1.go:52","runtime/internal/atomic.(*Uint32).Load @ /root/go/version/go1.21.0/src/runtime/internal/atomic/types.go:194","runtime.goexit @ /root/go/version/go1.21.0/src/runtime/asm_amd64.s:1651"]},{"data":{"server":"db-server-01","timeoutSeconds":30},"message":"connection timeout","stack":["main.createConnection @ /root/hack/errors/examples/example1/example1.go:35","main.updateDatabase @ /root/hack/errors/examples/example1/example1.go:23","main.createTransaction @ /root/hack/errors/examples/example1/example1.go:12","main.main @ /root/hack/errors/examples/example1/example1.go:52","runtime/internal/atomic.(*Uint32).Load @ /root/go/version/go1.21.0/src/runtime/internal/atomic/types.go:194","runtime.goexit @ /root/go/version/go1.21.0/src/runtime/asm_amd64.s:1651"]},{"data":{"network":"internal","severity":"high"},"message":"network instability detected","stack":["main.open @ /root/hack/errors/examples/example1/example1.go:45","main.createConnection @ /root/hack/errors/examples/example1/example1.go:34","main.updateDatabase @ /root/hack/errors/examples/example1/example1.go:23","main.createTransaction @ /root/hack/errors/examples/example1/example1.go:12","main.main @ /root/hack/errors/examples/example1/example1.go:52","runtime/internal/atomic.(*Uint32).Load @ /root/go/version/go1.21.0/src/runtime/internal/atomic/types.go:194","runtime.goexit @ /root/go/version/go1.21.0/src/runtime/asm_amd64.s:1651"]}]
163165
164166Error logged using the s format specifier:
165167failed to complete the transaction on bank_123456: failed to update the database: connection timeout: network instability detected
@@ -204,8 +206,8 @@ cause:
204206 message:
205207 "network instability detected"
206208 data:
207- network: internal
208209 severity: high
210+ network: internal
209211 stack:
210212 main.open @ /root/hack/errors/examples/example1/example1.go:45
211213 main.createConnection @ /root/hack/errors/examples/example1/example1.go:34
0 commit comments