Skip to content

Commit 251e4ff

Browse files
author
Dexter Haslem
committed
add verbose logging target to Config:
check if it's not nil first so its not a breaking change, this required an if/else generator to be made
1 parent c72b94c commit 251e4ff

File tree

3 files changed

+31
-4
lines changed

3 files changed

+31
-4
lines changed

generator/go_client.stoneg.py

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
fmt_type,
1212
fmt_var,
1313
generate_doc,
14+
generate_if_else,
1415
)
1516

1617

@@ -99,7 +100,12 @@ def _generate_request(self, namespace, route):
99100
body = 'nil'
100101
if not is_void_type(route.arg_data_type):
101102
with self.block('if dbx.Config.Verbose'):
102-
out('log.Printf("arg: %v", arg)')
103+
generate_if_else(self,
104+
'dbx.Config.Logger != nil',
105+
'dbx.Config.Logger.Printf("arg: %v", arg)',
106+
'log.Printf("arg: %v", arg)')
107+
out()
108+
103109
out('b, err := json.Marshal(arg)')
104110
with self.block('if err != nil'):
105111
out('return')
@@ -132,16 +138,24 @@ def _generate_request(self, namespace, route):
132138
host, style, authed, namespace.name, route.name, body))
133139
with self.block('if err != nil'):
134140
out('return')
141+
135142
with self.block('if dbx.Config.Verbose'):
136-
out('log.Printf("req: %v", req)')
143+
generate_if_else(self,
144+
'dbx.Config.Logger != nil',
145+
'dbx.Config.Logger.Printf("req: %v", req)',
146+
'log.Printf("req: %v", req)')
137147
out()
138148

139149
def _generate_post(self):
140150
out = self.emit
141151

142152
out('resp, err := cli.Do(req)')
143153
with self.block('if dbx.Config.Verbose'):
144-
out('log.Printf("resp: %v", resp)')
154+
generate_if_else(self,
155+
'dbx.Config.Logger != nil',
156+
'dbx.Config.Logger.Printf("resp: %v", resp)',
157+
'log.Printf("resp: %v", resp)')
158+
out()
145159

146160
with self.block('if err != nil'):
147161
out('return')
@@ -160,7 +174,11 @@ def _generate_response(self, route):
160174
out('return')
161175
out()
162176
with self.block('if dbx.Config.Verbose'):
163-
out('log.Printf("body: %s", body)')
177+
generate_if_else(self,
178+
'dbx.Config.Logger != nil',
179+
'dbx.Config.Logger.Printf("body: %v", body)',
180+
'log.Printf("body: %v", body)')
181+
out()
164182

165183
def _generate_error_handling(self, route):
166184
out = self.emit

generator/go_helpers.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,12 @@ def generate_doc(code_generator, t):
118118
d = 'Package %s : %s' % (t.name, doc)
119119
code_generator.emit_wrapped_text(d, prefix='// ')
120120

121+
def generate_if_else(code_generator, ifcond, ifbody, elsebody):
122+
with code_generator.block('if %s' % ifcond, after=" else {"):
123+
code_generator.emit(ifbody)
124+
with code_generator.indent():
125+
code_generator.emit(elsebody)
126+
code_generator.emit('}')
121127

122128
def _needs_base_type(data_type):
123129
if is_struct_type(data_type) and data_type.has_enumerated_subtypes():

generator/go_rsrc/sdk.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ package dropbox
2323
import (
2424
"fmt"
2525
"io"
26+
"log"
2627
"net/http"
2728

2829
"golang.org/x/oauth2"
@@ -49,6 +50,8 @@ type Config struct {
4950
Token string
5051
// Enable verbose logging in SDK
5152
Verbose bool
53+
// Logging target for verbose SDK logging
54+
Logger *log.Logger
5255
// Used with APIs that support operations as another user
5356
AsMemberID string
5457
// No need to set -- for testing only

0 commit comments

Comments
 (0)