Как каждому выводимому в лог сообщению присвоить свой уникальный идентификатор?
Приветствую.Есть большой коробочный продукт, он пишет логи, которых довольно много.Стоит задача каждому выводимому в лог сообщению присвоить свой уникальный идентификатор, чтобы службе поддержки было проще отвечать на тикеты.Сейчас в лог пишется нечто вроде1492632682.967257 [Wed Apr 19 20:11:22 2017] [emerg]: Can't create listenersХочется получить:1492632682.967257 [Wed Apr 19 20:11:22 2017] EM034 [emerg]: Can't create listenersЯ посмотрел, как это сделано у Apache.ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, APLOGNO(00762) "CACHE/CACHE_OUT filter enabled while caching is disabled, ignoring");Мне кажется, что это ужасно криво - проставлять руками номер ошибки в запись в лог - всегда можно недоглядеть и допустить ошибку в именовании ошибки %)Я посмотрел и код MySQL. Идея с глобальными кодами, собранными в файле мне нравится ещё меньшеПока что всё что придумалось - написать парзер-препроцессор кода на С, который вёл бы базу сообщений и присваивал им уникальный идентификатор. В код вставить нечто вродеlog_np_emerg(log_ctx, ERR_AUTOCODE "Can't create listeners");Но это требует препроцессинга всего кода при сборке проекта.Не решал ли кто подобную задачу? Если да, то как?
882
58
Comments