As you can see with its source code (by typing log??), the log function first tries to call the .log method, which is different from symbolic expressions and for Sage integers, so there is no contradiction here.
What you are pointing here is the fact that when the symbolic ring is not able to prove something, it considers it as False. Here, False means False or Unknown. I admit that such a trivial case should be dealt with.
sage: print(bool((log(a)+log(b)==log(a*b)).simplify_log()))