Using the Taylor series is not the easiest and fastest way to do this. In most professional implementations, approximating polynomials are used. I will show you how to generate it in Maple (this is a computer algebra program) using the Remez algorithm .
For 3 digits of precision, run the following commands in Maple:
with(numapprox): Digits := 8 minimax(ln(x), x = 1 .. 2, 4, 1, 'maxerror') maxerror
His answer is the following polynomial:
-1.7417939 + (2.8212026 + (-1.4699568 + (0.44717955 - 0.056570851 * x) * x) * x) * x
With the maximum error: 0.000061011436

We have generated a polynomial approximating ln (x), but only inside the interval [1..2]. Increasing the interval is not reasonable because it will increase the maximum error even more. Instead, do the following decomposition:

So, first find the highest power 2, which is still less than the number (see What is the fastest / most efficient way to find the most significant bit (msb) to an integer in C? ). This number is actually the base-2 logarithm. Divide this value, then the result falls into the interval 1..2. In the end, we will need to add n * ln (2) to get the final result.
An example implementation for numbers> = 1:
float ln(float y) { int log2; float divisor, x, result; log2 = msb((int)y);
Although if you plan to use it only in the interval [1.0, 2.0], then the function will look like this:
float ln(float x) { return -1.7417939 + (2.8212026 + (-1.4699568 + (0.44717955 - 0.056570851 * x) * x) * x) * x; }