![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
А вот почему ни в одном имеющемся под руками языке программирования нет функции "компилятор сам подставляет в вызов логгера имя функции, из которой его вызвали"?
Я понимаю, в log4net я могу подключить вывод фреймов стека, прямо в конфиге, но они достаточно знатно все тормозят в рантайме, а так бы на этапе компиляции подставлять имена функций в виде строковых констант.
В препроцессорах C и C++ есть __LINE__ и __FILE__, а больше я ничего подходящего вроде и не видел.
Я понимаю, в log4net я могу подключить вывод фреймов стека, прямо в конфиге, но они достаточно знатно все тормозят в рантайме, а так бы на этапе компиляции подставлять имена функций в виде строковых констант.
В препроцессорах C и C++ есть __LINE__ и __FILE__, а больше я ничего подходящего вроде и не видел.
no subject
Date: 2012-08-28 06:39 pm (UTC)#define sd_journal_print(priority, ...) sd_journal_print_with_location(priority, "CODE_FILE=" __FILE__, "CODE_LINE=" _sd_STRINGIFY(__LINE__), __func__, __VA_ARGS__)
А ещё она сама добавляет: PID, UID, GID, CMDLINE, REALTIME_TIMESTAMP, MONOTONIC_TIMESTAMP, HOSTNAME и некоторые другие, менее важные параметры.