It is an interesting question as you can choose different ways to do this.
Some of which are more or less robust in the face or unexpected input.
Do you want to explicitly match on the sometest,readtest,writetest keywords for robustness. Or just match any 3rd colon. Use cut command or sed or awk or perl or . . .
The question could be made more clear by pointing out the colons in the date/time that need to be ignored.
# after 3rd colon (but forgetting to strip the space after it)
# this cut command does the same as that sed
cut -d: -f 4-
# A cut command delimiting on space might be better actually
# assuming two words always to be stripped "Test (something)"
# this cut command leaves out the whitespace as expected
cut -d" " -f6-
# after 3rd colon (strip leading space):
sed "s/[^:]*:[^:]*:[^:]*: *//"
# after 3rd colon (strip leading WHITEspace):
# cut all those things explicitly before "sometest,readtest,writetest"
sed -E 's/.*(some|read|write)(test:)/\1\2/'
# exactly the same command works in perl
perl -pe 's/.*(some|read|write)(test:)/\1\2/'
Your expected output looked like it had the incorrect leading keywords.
sometest: some : text server:::test
writetest: some ::: text
Finally in your example and in logfiles generally sometimes you want to strip the timestamp, e.g. cut command to keep the "Test (something)" bit:
# A cut command to just strip the timestamp and leave in the "Test (something)"
cut -d" " -f4-