Das `\caption` wird in _jedem_ Kopfbereich der Tabelle gesetzt und für jedes `\caption` gibt es einen Eintrag im Tabellenverzeichnis. Damit das nicht passiert, kann man sich einen ersten Tabellenkopf im Gegensatz zu den weiteren Köpfen definieren. Einfach zusätzlich wie den normalen Kopf eintragen, aber mit `\endfirsthead`. `\endfirsthead` beenden. (Es gibt übrigens auch `\endlastfoot`:
`\endlastfoot` für das Ende der gesamten Tabelle im Gegensatz zu dem Ende bei einem Seitenumbruch):
\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{ngerman,longtable, booktabs}
\newcommand*\cs[1]{\texttt{\textbackslash#1}}
\newcommand*\marg[1]{\texttt{\{#1\}}}
\begin{document}
\vspace*{10cm}
\begin{longtable}{lrcp{2cm}}
\caption{log}\label{tab:log2} \\
\toprule
Spalte 1 & Spalte 2 & Spalte 3 & Spalte 4 \\
\midrule
\endfirsthead
\multicolumn{4}{c}{Fortsetzung von Tabelle~\ref{tab:log2}} \\
\toprule
Spalte 1 & Spalte 2 & Spalte 3 & Spalte 4 \\
\midrule
\endhead
\midrule
\endfoot
\bottomrule
\endlastfoot
Linksbündige Spalte. & Rechtsbündige Spalte & Zentrierte Spalte & Parbox \\
Kurzer Text. & Kurzer Text. & Kurzer Text.& Kurzer Text.\\
Text. & Text. & Text. & In diesem Felde nun ein elendslanger text, um
Umbrüche innerhalb eines Feldes zu erzeugen. \\
Text. & Text. & Text. & der Befehl \cs{vspace*}\marg{} weiter oben im
Quellcode hat einen Umbruch vor dieser Zeile
bewirkt. \\
\end{longtable}
\clearpage
\listoftables
\end{document}