J'utilise la coutume boost::log pour formatter codage couleur du message de journal de sortie, mais je ne pas trouver la bonne façon d'ajouter TimeStamp et ThreadID attributs dans le journal. Lorsque j'utilise l'enregistrement de fichiers, j'écris simplement keywords::format = "[%TimeStamp%] [%ThreadID%] [%Severity%]: %Message%"
comme paramètre logging::add_file_log
. Je veux avoir un effet similaire dans le formatter personnalisé suivant:Comment générer les attributs TimeStamp et ThreadID avec le formateur boost :: log personnalisé?
void coloring_formatter(const logging::record_view& record,
logging::formatting_ostream& stream)
{
auto severity = record[logging::trivial::severity];
assert(severity);
stream << "\e[1m";
switch (severity.get())
{
case logging::trivial::severity_level::trace:
stream << "\e[97m";
break;
case logging::trivial::severity_level::debug:
stream << "\e[34m";
break;
case logging::trivial::severity_level::info:
stream << "\e[32m";
break;
case logging::trivial::severity_level::warning:
stream << "\e[93m";
break;
case logging::trivial::severity_level::error:
stream << "\e[91m";
break;
case logging::trivial::severity_level::fatal:
stream << "\e[41m";
break;
}
stream // << output TimeStamp
// << output ThreadID
<< "[" << severity << "] "
<< record[logging::expressions::smessage]
<< "\e[0m";
}