I read that the Java programming language is Turing complete.
That means, I can write a Java program such that your Turing machine would not always be able to decide, in a finite number of steps, whether my Java program would terminate after reading some arbitrary input.
It does not mean that every Java program has that property. I can trivially write a Java program that always terminates, and if I do that, then you can construct a Turing machine that always says, "yes, it halts." Or, I can write a Java program that never terminates, and you can construct a Turning machine that always says "no, it doesn't halt."
I don't know the design of Babbage's Analytic Engine, but if it is Turing complete, then that means there is at least one configuration of the engine for which you can not solve the halting problem; but it does not mean that every configuration of the engine has that property.
I don't know what you mean exactly by "computes the logarithm of its input." Babbage's engine was a digital machine, and logarithm is a transcendental function. No digital algorithm to compute the true logarithm of a given number could ever terminate. In a practical configuration of the engine, it would do what my computer's floating-point hardware does: That is, it would compute only the first n digits of the logarithm (for some small n).
I haven't tried asking my computer for the logarithms of every possible double
value, but so far, it always has delivered a result in finite time for each of the countless millions of double
values that I have tried.