Add logging log template
Add logging log template

C++ template to log a message to journald.
Usage:
    log<level::XX>(const char*, entry(*format), entry()...);
    log<level::XX>(char*, entry(*format), entry()...);
Example:
    log<level::DEBUG>(
        msg("Simple Example"));
    char *msg_str[] = "File not found";
    log<level::DEBUG>(
        msg_str,
        entry("MY_METADATA=%s_%x, name, number));
An std::string can be passed via: example_string.c_str()),
and entry("EXAMPLE_STRING=%s", example_string.c_str())).
A future enhancement would be for 'entry' tuples to be
individually validated with a similar approach as the gcc
attribute format.

Change-Id: I82f4450468cc0676458a0ce56cf33c934a1a66ef
Signed-off-by: Adriana Kobylak <742cf4d8dead98b4cab50b088fd2a1406293c958@us.ibm.com>

openbmc/phosphor-logging,openbmc/phosphor-logging,openbmc/phosphor-logging,openbmc/phosphor-logging