I clean my chain regularly every two weeks or so.

However, if I have been riding in the wet or on particularly dusty/gritty roads then I clean as soon as possible and definitely before the next ride. No way am I going to be breaking my chain every couple of days in those circumstances.

I use one of those chain cleaners that clip onto the chain and kerosene as my cleaner of choice. I empty and refill the reservoir with clean kerosene at least once to rinse the chain after cleaning. Then clean the cogs with soft toothbrush dipped in kerosene, wipe everything with a rag and apply lube.