[Freeswitch-svn] [commit] r6517 - freeswitch/trunk/src/mod/loggers/mod_logfile
Freeswitch SVN
mikej at freeswitch.org
Wed Dec 5 08:15:22 EST 2007
Author: mikej
Date: Wed Dec 5 08:15:21 2007
New Revision: 6517
Modified:
freeswitch/trunk/src/mod/loggers/mod_logfile/mod_logfile.c
Log:
another step towards multi-profile file logger.
Modified: freeswitch/trunk/src/mod/loggers/mod_logfile/mod_logfile.c
==============================================================================
--- freeswitch/trunk/src/mod/loggers/mod_logfile/mod_logfile.c (original)
+++ freeswitch/trunk/src/mod/loggers/mod_logfile/mod_logfile.c Wed Dec 5 08:15:21 2007
@@ -297,16 +297,26 @@
static void event_handler(switch_event_t *event)
{
const char *sig = switch_event_get_header(event, "Trapped-Signal");
+ switch_hash_index_t *hi;
+ void *val;
+ const void *var;
+ logfile_profile_t *profile;
if (sig && !strcmp(sig, "HUP")) {
if (globals.rotate) {
- /* TODO: loop through all profiles */
- mod_logfile_rotate(default_profile);
+ for (hi = switch_hash_first(NULL, profile_hash); hi; hi = switch_hash_next(hi)) {
+ switch_hash_this(hi, &var, NULL, &val);
+ profile = val;
+ mod_logfile_rotate(profile);
+ }
} else {
switch_mutex_lock(globals.mutex);
- /* TODO: loop through all profiles */
- switch_file_close(default_profile->log_afd);
- mod_logfile_openlogfile(default_profile, SWITCH_TRUE);
+ for (hi = switch_hash_first(NULL, profile_hash); hi; hi = switch_hash_next(hi)) {
+ switch_hash_this(hi, &var, NULL, &val);
+ profile = val;
+ switch_file_close(profile->log_afd);
+ mod_logfile_openlogfile(profile, SWITCH_TRUE);
+ }
switch_mutex_unlock(globals.mutex);
}
}
@@ -362,11 +372,14 @@
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "No Settings, check the new config!\n");
} else {
logfile_profile_t *profile;
- profile = switch_core_alloc(module_pool, sizeof(*default_profile));
+ profile = switch_core_alloc(module_pool, sizeof(*profile));
memset(profile, 0, sizeof(*profile));
profile->name = switch_core_strdup(module_pool, switch_str_nil(name));
load_profile(profile, settings);
switch_core_hash_insert(profile_hash, profile->name, (void *) profile);
+ if (mod_logfile_openlogfile(profile, SWITCH_TRUE) != SWITCH_STATUS_SUCCESS) {
+ return SWITCH_STATUS_GENERR;
+ }
/* TODO: remove default_profile */
default_profile = profile;
}
@@ -376,11 +389,6 @@
switch_xml_free(xml);
}
- /* TODO: do this for all profiles */
- if (mod_logfile_openlogfile(default_profile, SWITCH_TRUE) != SWITCH_STATUS_SUCCESS) {
- return SWITCH_STATUS_GENERR;
- }
-
switch_log_bind_logger(mod_logfile_logger, SWITCH_LOG_DEBUG);
return SWITCH_STATUS_SUCCESS;
More information about the Freeswitch-svn
mailing list