There are two types of mathematical texts: source code (definition-theorem-proof-remark-definition-...), and books intended to educate via explanations of where we came from, where we're going, and why we should care. Enderton's (2nd edition) text is an actual *book,* albeit not a superb one (compare to Simpson's free text on Mathematical Logic at [...], which fits my definition of "source code"). For this he automatically earns 2 stars -- though in any field except mathematics, this would earn him nothing.
The prose itself is easy to follow, and makes suitable use of cross-references -- you will not find yourself stumped for 30 minutes trying to substantiate a casual statement made half-way through the book, as with some mathematical authors. High-minded ideas such as effectiveness and decidability appear (briefly) at the end of chapter one, so you don't have to read 180 pages before any "cool" things are presented, and there are occasional (but too few) sentences explaining what the goal of a formalism is before it is developed. Chapter 1, which covers sentential (propositional) logic, also has a short section on applications to circuit design, providing some much-welcome motivation for the material. Model theory is also integrated with the discussion of first-order logic in chapter 2, which is preferable to having it relegated to a later section as in some texts. The book also gives heavy emphasis to computational topics, and even gets into second-order logic in the final chapter -- a very complete coverage for such a small introductory text. These virtues combine to earn it a third star.
My primary complaint is the manner in which rigor is emphasized in the text to the neglect (rather than supplement) of a coherent big picture -- losing two full stars.
For instance, in chapter 1, 10 pages are spent very early on induction and recursion theorems, to put intuitive ideas like "closure" on firm ground. And yet the words "deduction" and "completeness" -- arguably the whole reason we want to study logic in the first place -- do not appear until after the entirety of the rigorous discussion of propositional logic, and even then only as an exercise. Most readers will reach page 109 before realizing that logicians care about deduction or soundness at all.
41 pages from chapter 2 are given over to defining models/structures, truth, definability, homomorphisms and parsing in first-order logic. These complex and highly detailed definitions remove ambiguity from mathematical discourse, and are essential -- but are best viewed as fungible reference material. After all, many alternative renditions of the formalism exist. This is not the essence of mathematical logic -- but to Enderton, they appear to be the field's first-class content.
I found it difficult to see the forest for the trees in this book. I would have much preferred to see examples of deduction proofs -- with exercises in making use of axioms of natural deduction, discharged assumptions, etc -- and a brief discussion of completeness up front. *Then* I would have enjoyed being told "okay, now that we've seen how FOL works in practice, it's important to note that we have not yet set it on a rigorous footing. The next three sections will set to that task via many small steps. We'll see how it all comes together in the end." It is amazing what a difference just a few sentences like that can make in a book on mathematics -- guiding your reader is vital.
I would also have loved to see some more high-level discussion on the history of FOL and justification for it's prominence, the decline of syllogistic logic, the origins of Boolean algebra, etc. But perhaps that is too much to ask, since mathematics educators are (uniquely in academia) not accustomed to contextualizing their material as part of a wider intellectual enterprise.