This undergraduate textbook covers the key material for a typical first course in logic, in particular presenting a full mathematical account of the most important result in logic, the Completeness Theorem for first-order logic. Looking at a series of interesting systems, increasing in complexity, then proving and discussing the Completeness Theorem for each, the author ensures that the number of new concepts to be absorbed at each stage is manageable, whilst providing lively mathematical applications throughout. Unfamiliar terminology is kept to a minimum, no background in formal set-theory is required, and the book contains proofs of all the required set theoretical results. The reader is taken on a journey starting with König's Lemma, and progressing via order relations, Zorn's Lemma, Boolean algebras, and propositional logic, to completeness and compactness of first-order logic. As applications of the work on first-order logic, two final chapters provide introductions to model theory and nonstandard analysis.