Sigh. Me too. Logical consequences help a great deal, and sometimes the logical consequence makes my kids angry. I think my job is to empathize and support them through it, but not necessarily to soften the blow.
I often find myself telling them, "I know that is not the answer you wanted to hear. . ."
My ds threw a grumpy sleepy tantrum in the middle of the night b/c he wanted to cuddle me, but had woken up dd, who then needed to nurse. He was kicking me and shoving me. I told him he could not hurt me, that I knew he was disapointed that he had to wait, but that if he hurt me again he could would need to sleep in his own bed. I asked if he could stop, and he did. I think this worked for us b/c I was calm (honestly I think I was waaaaay to tired to get mad!
) b/c leaving is the logical consequence for hurting someone, and b/c he knew I would follow through. He calmed right down and settled for rubbing my back while I nursed (his choice), until his sister was done and I could turn to cuddle him.
I often repeat that it is my job (and Daddy's) to keep everyone in our house safe. When he hits, kicks, name calls, I remind him of this, and ask if he will help me keep everyone safe. When he says no. I tell him that I have a problem with that and that he will need to be in the other room until he can help. I always tell him that I will check on him every 2 minutes so that HE feels safe and not rejected.
Growing up is not a pretty process. They all try out the most horrid behaviors with us, and often need to try them again and again before they truly have grasped why these behaviors don't work.
I find I can discipline best when I am calm, and have gotten enough of my most basic needs met, and understand that his/her behavior is not about me, though I can work to guide it.
FWIW, I am much more uptight with my ds, who is my older child. With my dd, I am relaxed and calm almost all of the time, even though she is hitting tantrum stage much earlier and more intensely than my ds did. I remind myself of this and try to lighten up with him as well.