You can do all of these with summary reports based on your log table.
the total number of hours completed by each volunteer for each activity
Sort first by volunteer, then by activity. Use summary fields placed in a sub summary part "when sorted by activity" to compute the totals for each activity. The body can be removed from this layout so that you only see the sub summary totals listed. A sub summary part "when sorted by volunteer" can be used to display the volunteer name and any related info you need from the members table.
the total number of hours completed by all volunteers for each activity
Use the same layout, but don't sort your records by volunteer. Just sort them by activity. When you don't sort by volunteer, the sorted by volunteer sub summary part drops out and you just get the totals for each activity.
Between two dates
For either of those report options, perform a find on this table to find only log records that fall on that date interval.