func Info(ctx context.Context, fields map[string]interface{}, format string, args ...interface{}) {
	if logger.Level >= log.InfoLevel {
		entry := log.NewEntry(logger)

		_, _, pName, _, err := extractCallerDetails()
		if err == nil {
			entry = entry.WithField("pkg", pName)
		}

		if ctx != nil {
			entry = entry.WithField("req_id", extractRequestID(ctx))
			identity_id, err := extractIdentityID(ctx)
			if err == nil { // Otherwise we don't use the identity_id
				entry = entry.WithField("identity_id", identity_id)
			}
		}

		if len(args) > 0 {
			entry.WithFields(fields).Infof(format, args...)
		} else {
			entry.WithFields(fields).Infoln(format)
		}
	}
}
// Info logs an info message that might contain the request id if provided by
// the context. In this function, the parameter fields enables to additional
// attributes to the message. The format and args input arguments are used to
// print a detailed information about the reasons of this log.
Info logs an info message that might contain the request id if provided by
the context. In this function, the parameter fields enables to additional
attributes to the message. The format and args input arguments are used to
print a detailed information about the reasons of this log.
// Info logs an info message that might contain the request id if provided by // the context . In this function the parameter fields enables to additional // attributes to the message . The format and args input arguments are used to // print a detailed information about the reasons of this log .
func Info(ctx context.Context, fields map[string]interface{}, format string, args ...interface{}) {
	if logger.Level >= log.InfoLevel {
		entry := log.NewEntry(logger)
		_, _, pName, _, err := extractCallerDetails()
		if err == nil {
			entry = entry.WithField("pkg", pName)
		}
		if ctx != nil {
			entry = entry.WithField("req_id", extractRequestID(ctx))
			identity_id, err := extractIdentityID(ctx)
			if err == nil { 
				entry = entry.WithField("identity_id", identity_id)
			}
		}
		if len(args) > 0 {
			entry.WithFields(fields).Infof(format, args...)
		} else {
			entry.WithFields(fields).Infoln(format)
		}
	}
}
func Info ( ctx context . Context , fields map [ string ] interface { } , format string , args ... interface { } ) { if logger . Level >= log . InfoLevel { entry := log . NewEntry ( logger ) _ , _ , pName , _ , err := extractCallerDetails ( ) if err == nil { entry = entry . WithField ( " " , pName ) } if ctx != nil { entry = entry . WithField ( " " , extractRequestID ( ctx ) ) identity_id , err := extractIdentityID ( ctx ) if err == nil { entry = entry . WithField ( " " , identity_id ) } } if len ( args ) > 0 { entry . WithFields ( fields ) . Infof ( format , args ... ) } else { entry . WithFields ( fields ) . Infoln ( format ) } } }
Info logs an info message that might contain the request id if provided by
the context.
Info logs an info message that might contain the request id if provided by the context .
// Otherwise we don't use the identity_id