X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=ucw%2Flog-conf.c;h=824d95fcb01df289025f44a19634584531df6214;hb=ecf11d9c9949a6e9323a4f18c2418532d7f77b8f;hp=d0afece0fb7e650ebe9e6f33157bff9c6dff00dd;hpb=c51ecde8966b8b94502264af84db7c2e8b07b2ef;p=libucw.git diff --git a/ucw/log-conf.c b/ucw/log-conf.c index d0afece0..824d95fc 100644 --- a/ucw/log-conf.c +++ b/ucw/log-conf.c @@ -7,13 +7,13 @@ * of the GNU Lesser General Public License. */ -#include "ucw/lib.h" -#include "ucw/log.h" -#include "ucw/log-internal.h" -#include "ucw/conf.h" -#include "ucw/simple-lists.h" -#include "ucw/tbf.h" -#include "ucw/threads.h" +#include +#include +#include +#include +#include +#include +#include #include #include @@ -26,6 +26,7 @@ struct stream_config { cnode n; char *name; char *file_name; + int file_desc; char *syslog_facility; u32 levels; clist types; // simple_list of names @@ -53,6 +54,7 @@ stream_init(void *ptr) struct stream_config *c = ptr; c->levels = ~0U; + c->file_desc = -1; return NULL; } @@ -102,6 +104,7 @@ static struct cf_section stream_config = { #define P(x) PTR_TO(struct stream_config, x) CF_STRING("Name", P(name)), CF_STRING("FileName", P(file_name)), + CF_INT("FileDesc", P(file_desc)), CF_STRING("SyslogFacility", P(syslog_facility)), CF_BITMAP_LOOKUP("Levels", P(levels), level_names), CF_LIST("Types", P(types), &cf_string_list_config), @@ -293,6 +296,8 @@ do_new_configured(struct stream_config *c) if (c->file_name) ls = log_new_file(c->file_name, (c->stderr_follows ? FF_FD2_FOLLOWS : 0)); + else if (c->file_desc >= 0) + ls = log_new_fd(c->file_desc, (c->stderr_follows ? FF_FD2_FOLLOWS : 0)); else if (c->syslog_facility) ls = log_new_syslog(c->syslog_facility, (c->syslog_pids ? LOG_PID : 0)); else @@ -331,17 +336,13 @@ log_new_configured(const char *name) void log_configured(const char *name) { - struct log_stream *ls = log_new_configured(name); - struct log_stream *def = log_stream_by_flags(0); - log_rm_substream(def, NULL); - log_add_substream(def, ls); - log_close_stream(ls); + log_set_default_stream(log_new_configured(name)); } #ifdef TEST #include -#include "ucw/getopt.h" +#include int main(int argc, char **argv) {