First off, let’s answer why does the log function or log() or sometimes also written as log10() cancel out the 10^x in the following equation:
10^x=M
log(10^x)=log(M)=x
the answer to why is because it is designed to do so.
the log() is the inverse relationship for solving exponents where the base is 10. ln() =log base e()=log_e() is the inverse relationship for e^x.
The purpose of such functions is to solve for the exponents.
If you want to solve the following:
3x=2
then you divide both sides by 3 because division is the inverse relationship of multiplying 3 and x which is done to isolate the x variable. Similarly, to isolate the exponent of two very important numbers, namely 10 and e, we use the inverse relationship of log() and ln(), respectively. We commonly use 10^x notation for scientific notation. And we use e as the base solution for all differential equations. Even sin(x), etc., can be written as e^x combinations. All functions can be written as combinations of e^x functions. It is truly a beautiful thing. It was designed that way.
Base 2 or log2() is also commonly used for graphical purposes and the same holds true:
if you want to solve
2^x = M
then:
log2(2^x)=log2(M)=x
it is simply a function. The why it is this way answers the how… because the function was designed to be the inverse relationship of exponents for the purpose of isolating exponents and to solve for the exponents.