My chain and cogs always look very dirty as the oil attracts dirt.
Mine too.
It is a constant problem as you can't fully avoid stains on your trousers and hands.
Here I have to disagree. You only get chain lubricant stains on your hand if you touch the chain. The only time I had to touch my chain (apart from when I replace it with a new chain at home while having access to hand degreaser) was when I rode a 1x bike with narrow-wide chainring and clutched rear derailleur but wasn't aware of the need to turn the clutch mechanism on (the bike was shipped from the factory with the clutch mechanism off). The chain obviously dropped from the chainring and there being no front derailleur, I had to re-raise it on top of the chainring with my hands. Now I ride with the clutch on, being aware of the mechanism. So I don't expect I'll ever encounter a dropped chain again.
If you have a derailleur bike, learn how to remove and install the rear wheel without touching the chain. Then you can repair punctures without getting chain lubricant on your hands.
The way I protect my trousers from chain oil is the following:
When riding long distances, I use sports trousers that aren't wide at the bottom. Thus, they don't touch the chain. If I choose to ride on non-bicycling trousers (which I do for trips so short that changing trousers would be ridiculous), I put the bottom of the trouser legs on my socks.
Furthermore, I have a bike that has a chainguard. It allows me to ride without putting the bottom of the trouser legs on my socks. Unfortunately, not all my bikes have a chainguard.
So some combination of cycling specific trousers, putting the bottom of the trouser leg on your socks, and installing a chainguard will protect your trousers from chain oil.
Also, that looks ugly and I believe it wears the chain and the cassette out as the particles stuck on chain act as abrasive.
I didn't buy my bicycle to look at. I bought my bicycle to ride. So it's not a consideration whether it looks ugly.
However, I agree that excessively dirty chain will wear away the chain in no time. So you have to have some strategy to somewhat mitigate the amount of abrasive wear particles on the chain.
My strategy is as follows:
- I never ever put oil on a chain if the chain doesn't squeak. A non-squeaking chain has oil and it doesn't need more of it. If you always oil a non-squeaking oily chain so that the chain will never encounter the squeaking stage, the chain will all the time collect more and more abrasive dirt that will wear away the chain in no time.
- I only oil a chain that has been squeaking. The squeak means there is no oil. Thus, there being no oil, the abrasive wear particles don't stay on the innards of the chain that are constantly moving. You can take a look at the rollers of a squeaking chain. They are shiny clean. Only the side plates of a squeaking chain are dirty.
- Before lubricating the chain, I wipe away the excess dirt from the side plates with a dirty rag.
- I use thixotropic motorcycle chain lubricant in a spray can. It being thixotropic means that it penetrates the chain easily after shaken, but when left to settle, it becomes thick again, staying inside the chain and not dripping out. When starting to ride, it becomes thin and when parking the bike, it becomes thick.
- After lubricating the chain, I wipe excess lubricant from the outside of the chain with a clean rag (not the same dirty rag you used previously). This can not be done perfectly, but do it good enough and the dirt collection will be minimized. There is no need for chain lubricant on the outside of the chain. Only the inside of the chain needs lubricant.
I used to think that was unavoidable, but then I noticed that on some bikes the chain and cogs are shiny clean.
Those are the bikes that have a chain not having enough oil. While it may sound good to not be dirty, if they don't have oil either, they will wear out in no time. There is a good middle ground between no oil and no abrasive dirt, and lots of oil and lots of abrasive dirt.
Is that because their owners clean the chain daily (because honestly one day is enough for a chain to turn black after full cleaning) or because they use different lubrication solutions?
Most likely the cause is that either the chain is cleaned daily or its lubrication has been neglected. Neither of these is a good option. Cleaning the chain daily requires lots of time, time that you are far better of spending riding instead of maintaining your bike.
I heard about teflon-based lubricants, are they really much better in that sense than traditional oil-based ones?
Teflon is not a liquid lubricant, so not a good solution. Not being liquid, it doesn't replenish. Thus, you need to re-apply it constantly if you want it to have any effect. Compare this to thixotropic motorcycle chain oil that in good conditions can easily last 1000 km or more on the chain without needing re-applications.
Also, these bikes with shiny chains were always single-speed bikes - does that mean geared system experience more traction and should be traditionally oiled?
I suspect those cheap single speed bikes have been neglected. Being single speed, their owners have not noticed the bad effects of chain wear. Their sprockets have probably worn so much that they can't take a new chain anymore without changing the sprockets too. Most cyclists that put any effort and money into their hobby use gears. A single speed bike is invariable cheap and its owner probably doesn't maintain the bike. As I said, a chain that lacks oil is shiny clean.