Christian,
By where I mean package/file.go:lineNumber which I have a helper method for
that:
//-----------------------------------------------------------------------------
var (
errNotAvailable = errors.New("N/A")
)
// Here .
func Here(skip ...int) (funcName, fileName string, fileLine int, callerErr
error) {
sk := 1
if len(skip) > 0 && skip[0] > 1 {
sk = skip[0]
}
var pc uintptr
var ok bool
pc, fileName, fileLine, ok = runtime.Caller(sk)
if !ok {
callerErr = errNotAvailable
return
}
fn := runtime.FuncForPC(pc)
name := fn.Name()
ix := strings.LastIndex(name, ".")
if ix > 0 && (ix+1) < len(name) {
name = name[ix+1:]
}
funcName = name
nd, nf := filepath.Split(fileName)
fileName = filepath.Join(filepath.Base(nd), nf)
return
}
//-----------------------------------------------------------------------------
I do not know if it's the best in the class though!
I like the approach that package took to keep track of the source error.
But never have take a look to those interfaces. And that's my point. There
is something wrong with being forced to adapt every single package to your
underlying logger, just to provide logging.
And going back to the my initial concern: There is a need for an interface
for a logger (whatever it should look like) and the standard log package
should be able to consume that interface (instead of io.Writer).
On Thursday, August 17, 2017 at 3:43:21 PM UTC+4:30, Christian Joergensen
wrote:
>
> On Thursday, August 17, 2017 at 11:40:08 AM UTC+2, dc0d wrote:
>>
>> That's a nice package with good design (and I've used it for a while).
>> But I loose the info about where the error is happening.
>>
>
> What do you mean by where the error is happening?
>
> Have you checked out
> http://godoc.org/github.com/pkg/errors#hdr-Retrieving_the_stack_trace_of_an_error_or_wrapper
>
>
> Cheers,
>
> Christian
>
--
You received this message because you are subscribed to the Google Groups
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.