Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(27)

Side by Side Diff: logdog/client/cmd/logdog_butler/main.go

Issue 2963503003: [errors] Greatly simplify common/errors package. (Closed)
Patch Set: fix nits Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « logdog/client/cli/subcommandQuery.go ('k') | logdog/client/cmd/logdog_butler/output_logdog.go » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The LUCI Authors. All rights reserved. 1 // Copyright 2015 The LUCI Authors. All rights reserved.
2 // Use of this source code is governed under the Apache License, Version 2.0 2 // Use of this source code is governed under the Apache License, Version 2.0
3 // that can be found in the LICENSE file. 3 // that can be found in the LICENSE file.
4 4
5 package main 5 package main
6 6
7 import ( 7 import (
8 "bytes"
9 "flag" 8 "flag"
10 "fmt" 9 "fmt"
11 "net/http" 10 "net/http"
12 "os" 11 "os"
13 "os/signal" 12 "os/signal"
14 "sort" 13 "sort"
15 "strings" 14 "strings"
16 "time" 15 "time"
17 16
18 "github.com/maruel/subcommands" 17 "github.com/maruel/subcommands"
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after
210 return nil 209 return nil
211 } 210 }
212 211
213 // logAnnotatedErr logs the full stack trace from an annotated error to the 212 // logAnnotatedErr logs the full stack trace from an annotated error to the
214 // installed logger at error level. 213 // installed logger at error level.
215 func logAnnotatedErr(ctx context.Context, err error, f string, args ...interface {}) { 214 func logAnnotatedErr(ctx context.Context, err error, f string, args ...interface {}) {
216 if err == nil { 215 if err == nil {
217 return 216 return
218 } 217 }
219 218
220 var buf bytes.Buffer
221 st := errors.RenderStack(err)
222 if _, derr := st.DumpTo(&buf); derr != nil {
223 // This can't really fail, since we're rendering to a Buffer.
224 panic(derr)
225 }
226
227 nargs := make([]interface{}, len(args)+1) 219 nargs := make([]interface{}, len(args)+1)
228 » nargs[copy(nargs, args)] = buf.Bytes() 220 » nargs[copy(nargs, args)] = strings.Join(errors.RenderStack(err), "\n")
229 221
230 if f == "" { 222 if f == "" {
231 f = "Captured error stack:" 223 f = "Captured error stack:"
232 } 224 }
233 log.Errorf(ctx, f+"\n%s", nargs...) 225 log.Errorf(ctx, f+"\n%s", nargs...)
234 } 226 }
235 227
236 func mainImpl(ctx context.Context, defaultAuthOpts auth.Options, argv []string) int { 228 func mainImpl(ctx context.Context, defaultAuthOpts auth.Options, argv []string) int {
237 defaultAuthOpts.Scopes = allOutputScopes() 229 defaultAuthOpts.Scopes = allOutputScopes()
238 230
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
352 344
353 paniccatcher.Do(func() { 345 paniccatcher.Do(func() {
354 rc = mainImpl(ctx, chromeinfra.DefaultAuthOptions(), os.Args[1:] ) 346 rc = mainImpl(ctx, chromeinfra.DefaultAuthOptions(), os.Args[1:] )
355 }, func(p *paniccatcher.Panic) { 347 }, func(p *paniccatcher.Panic) {
356 log.Fields{ 348 log.Fields{
357 "panic.error": p.Reason, 349 "panic.error": p.Reason,
358 }.Errorf(ctx, "Panic caught in main:\n%s", p.Stack) 350 }.Errorf(ctx, "Panic caught in main:\n%s", p.Stack)
359 rc = runtimeErrorReturnCode 351 rc = runtimeErrorReturnCode
360 }) 352 })
361 } 353 }
OLDNEW
« no previous file with comments | « logdog/client/cli/subcommandQuery.go ('k') | logdog/client/cmd/logdog_butler/output_logdog.go » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698