Both BRSWARTZ and Nancy4366's answers are incorrect:
'A light sleeper. A light sleeper is the opposite of someone who sleeps like a log - Why? Because someone who is a light sleeper does sleep but they wake easily.''
A light sleeper is the opposite of heavy sleeper and it is used as a personality trait (I have always been a light/heavy sleeper). but a person in a light sleep is easy to wake.
However, when you use 'sleep like a dog' or 'sleep like a baby', it doesn't necessarily mean you are talking about a personality characteristic. You can use it just to describe someone who is sleeping soundly and well now, or someone who slept well and deeply last night. So if you say 'he slept like a dog', it simply means he slept both deeply and well, therefore, you can simply say 'he slept badly' to mean the opposite.
'A restless sleeper' can also be used here since it means 'disturbed'. (a resless night/sleep)
P.S Native Speakers of English are not always right. Their explanation is not always convincing. ;)