Skip to content

Commit fbf7a6f

Browse files
authored
Merge pull request #18 from DexterHaslem/add-log-target
Add log target
2 parents 9270e26 + e795df5 commit fbf7a6f

File tree

3 files changed

+26
-8
lines changed

3 files changed

+26
-8
lines changed

generator/go_client.stoneg.py

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -104,8 +104,8 @@ def _generate_request(self, namespace, route):
104104

105105
body = 'nil'
106106
if not is_void_type(route.arg_data_type):
107-
with self.block('if dbx.Config.Verbose'):
108-
out('log.Printf("arg: %v", arg)')
107+
out('dbx.Config.TryLog("arg: %v", arg)')
108+
109109
out('b, err := json.Marshal(arg)')
110110
with self.block('if err != nil'):
111111
out('return')
@@ -138,21 +138,22 @@ def _generate_request(self, namespace, route):
138138
host, style, authed, namespace.name, route.name, body))
139139
with self.block('if err != nil'):
140140
out('return')
141-
with self.block('if dbx.Config.Verbose'):
142-
out('log.Printf("req: %v", req)')
141+
142+
out('dbx.Config.TryLog("req: %v", req)')
143+
143144
out()
144145

145146
def _generate_post(self):
146147
out = self.emit
147148

148149
out('resp, err := cli.Do(req)')
149-
with self.block('if dbx.Config.Verbose'):
150-
out('log.Printf("resp: %v", resp)')
151150

152151
with self.block('if err != nil'):
153152
out('return')
154153
out()
155154

155+
out('dbx.Config.TryLog("resp: %v", resp)')
156+
156157
def _generate_response(self, route):
157158
out = self.emit
158159
style = route.attrs.get('style', 'rpc')
@@ -165,8 +166,8 @@ def _generate_response(self, route):
165166
'if err != nil'):
166167
out('return')
167168
out()
168-
with self.block('if dbx.Config.Verbose'):
169-
out('log.Printf("body: %s", body)')
169+
170+
out('dbx.Config.TryLog("body: %v", body)')
170171

171172
def _generate_error_handling(self, route):
172173
out = self.emit

generator/go_helpers.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@ def generate_doc(code_generator, t):
126126
d += 'Use `%s` instead' % fmt_var(t.deprecated.by.name)
127127
code_generator.emit_wrapped_text(d, prefix='// ')
128128

129+
129130
def _needs_base_type(data_type):
130131
if is_struct_type(data_type) and data_type.has_enumerated_subtypes():
131132
return True

generator/go_rsrc/sdk.go

Lines changed: 16 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
@@ -61,6 +64,19 @@ type Config struct {
6164
URLGenerator func(hostType string, style string, namespace string, route string) string
6265
}
6366

67+
// TryLog will, if Verbose is set, log to the config's logger
68+
// or the default log (stderr) if Config.Logger is nil.
69+
func (c *Config) TryLog(format string, v ...interface{}) {
70+
if !c.Verbose {
71+
return
72+
}
73+
if c.Logger != nil {
74+
c.Logger.Printf(format, v...)
75+
} else {
76+
log.Printf(format, v...)
77+
}
78+
}
79+
6480
// Context is the base client context used to implement per-namespace clients.
6581
type Context struct {
6682
Config Config

0 commit comments

Comments
 (0)