Does anyone out there know how to read syslog messages from a device?

I can receive them just fine using the Winsock control but the data comes
across as 1 line of text..

for example:
%PIX-5-304001: 10.61.42.37 Accessed URL 09.185.242.251:http://209.185.242.251/f.s.gif

I need to separate the items in this message string:
Facility: PIX
Level: 5
Code: 304001
Message: 10.61.42.37 Accessed URL
209.185.242.251:http://209.185.242.251/f.s.gif

The problem I have, is not all syslog messages are formatted the same and
there are no constant delimiters in the message which makes breaking them
down impossible. I think I am pulling the data wrong or the Winsock.GetData
method is stripping off some special characters I need.

Any ideas???

Thanks!!