If I understand correctly, what you are looking for is syslogging. The configuration may be slightly different depending on the platform you are using. The basic setup is:
Switch(config)# logging <IP of your syslog server>
Switch(config)# logging trap <Level>
The logging level can range from 0 (Emergency) to 7 (Debug), but that depends on your needs.
As far as a syslog server is concerned you have a ton of options, Graylog is open source and not too terribly difficult to set up. You can create a graylog virtual appliance by downloading the .OVA they provide, or you can set it up on a CentOS or Ubuntu server. If you have a budget and want a lot of easy, and expensive plugins Splunk is great syslogging service.