Keep in mind that the onItemUse() method will be called twice: once on the server, and once on the client. That's why you're getting two outputs, since both calls are sending a message.
You can check which side is calling the method from the World#isRemote member. In your case, the world is a parameter called w, so you can check w.isRemote to see the side. If isRemote is false, it's the server, if it's true, it's the client.
For instance, if your code only does things on the server, you can simply bypass it on the client by putting this snippet at the top of your method body:
if (w.isRemote) {
return EnumActionResult.PASS;
}