code: func (hook *contextHook) Fire(entry *log.Entry) error {
  	pc := make([]uintptr, 4)
  	cnt := runtime.Callers(6, pc)
  
  	for i := 0; i < cnt; i++ {
  		fu := runtime.FuncForPC(pc[i] - 1)
  		name := fu.Name()
  		if !isSkippedPackageName(name) {
  			file, line := fu.FileLine(pc[i] - 1)
  			entry.Data["file"] = path.Base(file)
  			entry.Data["line"] = line
  			break
  		}
  	}
  	return nil
  }
docs: // Fire implements logrus.Hook interface
  // https://github.com/sirupsen/logrus/issues/63