logging: add new log_targets_reopen() function

This function will re-open all existing log files in the application,
praticularly useful for SIGHUP handlers in case of logrotate
This commit is contained in:
Harald Welte 2013-03-18 19:01:40 +01:00
parent e128f46631
commit 4de854dcf0
2 changed files with 21 additions and 0 deletions

View File

@ -203,6 +203,7 @@ struct log_target *log_target_create_file(const char *fname);
struct log_target *log_target_create_syslog(const char *ident, int option,
int facility);
int log_target_file_reopen(struct log_target *tgt);
int log_targets_reopen(void);
void log_add_target(struct log_target *target);
void log_del_target(struct log_target *target);

View File

@ -597,6 +597,26 @@ int log_target_file_reopen(struct log_target *target)
return 0;
}
/*! \brief close and re-open a log file (for log file rotation) */
int log_targets_reopen(void)
{
struct log_target *tar;
int rc = 0;
llist_for_each_entry(tar, &osmo_log_target_list, entry) {
switch (tar->type) {
case LOG_TGT_TYPE_FILE:
if (log_target_file_reopen(tar) < 0)
rc = -1;
break;
default:
break;
}
}
return rc;
}
/*! \brief Generates the logging command string for VTY
* \param[in] unused_info Deprecated parameter, no longer used!
*/