Reload logger configuration on SIGHUP

Besides changing the configuration this allows to easily rotate log files.

Also moved logger initialization back to daemon_t.
This commit is contained in:
Tobias Brunner
2012-10-18 14:42:10 +02:00
parent d35d669180
commit 3555bacac7
6 changed files with 400 additions and 208 deletions
+5 -23
View File
@@ -116,28 +116,6 @@ static void segv_handler(int signal)
abort();
}
/**
* Initialize logging to syslog
*/
static void initialize_logger()
{
sys_logger_t *sys_logger;
debug_t group;
level_t def;
sys_logger = sys_logger_create(LOG_DAEMON);
def = lib->settings->get_int(lib->settings,
"charon-nm.syslog.default", 1);
for (group = 0; group < DBG_MAX; group++)
{
sys_logger->set_level(sys_logger, group,
lib->settings->get_int(lib->settings, "charon-nm.syslog.%N", def,
debug_lower_names, group));
}
charon->sys_loggers->insert_last(charon->sys_loggers, sys_logger);
charon->bus->add_logger(charon->bus, &sys_logger->logger);
}
/**
* Lookup UID and GID
*/
@@ -204,7 +182,11 @@ int main(int argc, char *argv[])
goto deinit;
}
initialize_logger();
/* make sure we log to the DAEMON facility by default */
lib->settings->set_int(lib->settings, "charon-nm.syslog.daemon.default",
lib->settings->get_int(lib->settings,
"charon-nm.syslog.daemon.default", 1));
charon->load_loggers(charon, NULL, FALSE);
/* use random ports to avoid conflicts with regular charon */
lib->settings->set_int(lib->settings, "charon-nm.port", 0);