It is said metalanguage is a formal language. If this site about computer science is right (http://interactivepython.org/courselib/static/thinkcspy/GeneralIntro/FormalandNaturalLanguages.html), formal languages are almost free from ambiguity and redundancy and are always literal.
However, metalanguage is English, which sometimes bear ambiguities and redundancy and does not always mean what it says. Also, it has way less clear rules about syntax than object languages do.
So, how can metalanguage be a formal language?
In logic (but also computer-science) a meta-language is just a language used to formally define the objects (and even the semantics) of a language, in order to study your target language and theories written in this language formally. So the meta-language can be any language, when you are doing foundation usually you use an informal language because that's the only language your audience is expected to know, but in many advanced and techincal works usually people tend to use formal language as meta-language too.
As an example in mathematics lots of (formal) theories are studied using ZFC-set theory as a meta-theory.
But this becomes more clearly in computer-science and programming. For instance if you write a compiler for a (target) programming language you use a programming language (that is a formal language) as a meta-language for the target language (the language for the compiler). In this meta-language you have to define the abstract-syntax-structure for the target language, via types and functions of the language you're using, so you are defining the target language objects in your meta-language.
Hope this helps.