func New(opts ...Option) (*StackdriverHook, error) {
	var err error

	sh := &StackdriverHook{
		levels: logrus.AllLevels,
	}

	// apply opts
	for _, o := range opts {
		err = o(sh)
		if err != nil {
			return nil, err
		}
	}

	// check service, resource, logName set
	if sh.service == nil && sh.agentClient == nil {
		return nil, errors.New("no stackdriver service was provided")
	}
	if sh.resource == nil && sh.agentClient == nil {
		return nil, errors.New("the monitored resource was not provided")
	}
	if sh.projectID == "" && sh.agentClient == nil {
		return nil, errors.New("the project id was not provided")
	}

	// set default project name
	if sh.logName == "" {
		err = LogName(DefaultName)(sh)
		if err != nil {
			return nil, err
		}
	}

	// If error reporting log name not set, set it to log name
	// plus string suffix
	if sh.errorReportingLogName == "" {
		sh.errorReportingLogName = sh.logName + "_errors"
	}

	return sh, nil
}
func New(opts ...Option) (*StackdriverHook, error) {
	var err error

	sh := &StackdriverHook{
		levels: logrus.AllLevels,
	}

	
	for _, o := range opts {
		err = o(sh)
		if err != nil {
			return nil, err
		}
	}

	
	if sh.service == nil && sh.agentClient == nil {
		return nil, errors.New("no stackdriver service was provided")
	}
	if sh.resource == nil && sh.agentClient == nil {
		return nil, errors.New("the monitored resource was not provided")
	}
	if sh.projectID == "" && sh.agentClient == nil {
		return nil, errors.New("the project id was not provided")
	}

	
	if sh.logName == "" {
		err = LogName(DefaultName)(sh)
		if err != nil {
			return nil, err
		}
	}

	
	
	if sh.errorReportingLogName == "" {
		sh.errorReportingLogName = sh.logName + "_errors"
	}

	return sh, nil
}
func New ( opts ... Option ) ( * StackdriverHook , error ) { var err error sh := & StackdriverHook { levels : logrus . AllLevels , } // apply opts for _ , o := range opts { err = o ( sh ) if err != nil { return nil , err } } // check service, resource, logName set if sh . service == nil && sh . agentClient == nil { return nil , errors . New ( " " ) } if sh . resource == nil && sh . agentClient == nil { return nil , errors . New ( " " ) } if sh . projectID == " " && sh . agentClient == nil { return nil , errors . New ( " " ) } // set default project name if sh . logName == " " { err = LogName ( DefaultName ) ( sh ) if err != nil { return nil , err } } // If error reporting log name not set, set it to log name // plus string suffix if sh . errorReportingLogName == " " { sh . errorReportingLogName = sh . logName + " " } return sh , nil }
// New creates a StackdriverHook using the provided options that is suitible
// for using with logrus for logging to Google Stackdriver.
New creates a StackdriverHook using the provided options that is suitible for using with logrus for logging to Google Stackdriver .