Some may find this odd, but for cleaning I discovered an excellent cleaner is actually the chain lube itself. With most lubes the carrier is actually and excellent solvent before it evaporates. I spray some on a rag and wipe the chain down, that gets it pretty darn clean, and maybe use a brush to get in the crevices. Then hold the rag under the chain and spray through the chain, the rag will catch the excess running out of the links along with alot of the crud. Then wipe it down a few more times afterwards. Pretty easy and effective.
Over the years I've used alot of lubes. I ended up using that Dupont Multi Use stuff, and it works great dirt or street, and is clean. I've used Chain Wax too, works good too but it will get crusty on the side plates and sprocket. What really doesn't work in my experience is WD40. When I was road racing I used that for a season upon advice from someone "in the know" because allegedly some MotoGP used it. No good, I've never had those aluminum sprockets wear so fast as they did with WD40. Never saw that with any other "lube".
My advice is to use the above method and do it fairly frequently, it doesn't take much effort and it's the not having a bunch of grit stuck in gooey lube that'll get you the most hassle free miles.