Solution 1:

This is not the ideal answer, but it is a start.

Notifications are transient and it is not intended that they are put into any history which is easy to use. But you can write software which can catch some aspects of notifications.

Notification activity does get recorded in the system log. To get you started a command like this will show recent notifications (you may need to modify for High Sierra, I am using Big Sur):

log show --predicate '(subsystem == "com.apple.unc") && (category == "application")' --style syslog --info --last 1h

You could write an application which spawns a subprocess running that command, collecting the output, and storing essential activity.

Note that though it records the application that sent the notification, it does not show the content of the notification.