Я написал простую функцию ведения журнала, которая отображает метку времени и использует vprintf()
для эмуляции printf()
. Теперь моя основная программа читает файл конфигурации в struct configuration
. Я планирую сделать так, чтобы функция регистрации использовала эту конфигурацию, чтобы определить, куда она должна регистрироваться (std {out, err}, syslog, какой-то другой файл, ...). Итак, что было бы лучшим способом, чтобы моя функция регистрации знала, куда она должна войти? Я думаю о том, чтобы сделать мою struct configuration * config
глобальной переменной, объявленной как раз перед main()
, и иметь extern struct configuration * config
в log.h, чтобы log.c мог ее использовать. Но все продолжают говорить, что «глобальные переменные плохие, не используйте их», поэтому я хотел бы знать, есть ли лучший способ сделать это.