As this is homework, I have been not too detailed. Nevertheless, the arguments are complete.
In fact the language is context-free. I do not understand your $\log$-example.
(added) $\newcommand{\u}[1]{\underline{#1}}$ By definition $L$ consists of those strings $w$ in $L_1$ such that the length of $w$ is even and when taking the odd letters from $w$ we obtain a string from $L_2$. A lovely nonstandard operation. So, if $w=\u aa\u ab\u bb\u bb\in L_1$ and $L_2=\{a^nb^n \mid n\ge 1\}$ then $w\in L$ as the odd letters spell out $aabb\in L_2$. Rather than deleting letters form words in $L_1$ we will add letters after every letter of a string in $L_2$ and check whether the result is from $L_1$. A morphism can delete letters, so an inverse morphism can insert those. We need however to ensure we only insert after every existing letter.
We start by defining an alternative alphabet next to $\Sigma=\{a,b\}$ to temporarily distinguish letters from $L_2$ and the inserted letters: $\Delta=\{c,d\}$.
For $u\in \{a,b,c,d\}^*$ we can check whether the $\Sigma$-part is in $L_2$ by applying the morphism $h$ that deletes $c$ and $d$ (and keeps $a$ and $b$). Thus the set of all strings in $L_2$ with $c$'s and $d$'s added at random positions is exactly the language $h^{-1}(L_2)$, obtained as an inverse morphism.
In the example we get, e.g., from $aabb$ both $\u ac\u ad\u bd\u bd$ (with insertions at proper positions) and $cc\u a\u ad\u bcd\u bd$ (insertions that are not to be kept).
We find strings that after inserting have letters in $\Sigma$ and $\Delta$ alternatingly (as desired) by intersecting with the simple regular language $R = (\Sigma\Delta)^*$.
We find all strings in $L_2$ with letters $a$ and $b$ inserted at even positions by then mapping $c$ and $d$ back to $a$ and $b$ using another morphism $g$.
We find $L$ by intersecting regular $L_1$ with the language we just have constructed from context-free $L_2$ using (inverse) morphisms and intersection with a regular language, to be precise $L = L_1 \cap g( h^{-1}(L_2) \cap R)$.
Note. If you know that context-free languages are in fact closed under finite state transductions (finite state automata with output) then the argumentation can be formulated in a more intuitive way. In fact closure under the three operations (inverse) morphisms and intersection with regular languages is equivalent with closure under finite state transductions.
(I also have flagged this question as duplicate ... but as Brian notes, I was wrong. Sorry moderator.)