X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/0c0857127aadbff3d4d1d317ca35b0c50621663a..4f11d2862f6367e7ddb2892df275cad235a93c02:/src/xbt/log_default_appender.c diff --git a/src/xbt/log_default_appender.c b/src/xbt/log_default_appender.c index b4e3054e03..51e4e15edf 100644 --- a/src/xbt/log_default_appender.c +++ b/src/xbt/log_default_appender.c @@ -2,57 +2,79 @@ /* file_appender - a dumb log appender which simply prints to stdout */ -/* Authors: Martin Quinson */ -/* Copyright (C) 2003, 2004 Martin Quinson. */ +/* Copyright (c) 2003, 2004 Martin Quinson. All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it - under the terms of the license (GNU LGPL) which comes with this package. */ + * under the terms of the license (GNU LGPL) which comes with this package. */ -#include "gras_private.h" +#include "xbt/sysdep.h" +#include "xbt/log.h" #include - -GRAS_LOG_NEW_DEFAULT_SUBCATEGORY(log_app,log,"default logging handler"); +#include "gras/virtu.h" /** * The root category's default logging function. */ -extern const char *gras_log_priority_names[7]; +extern const char *xbt_log_priority_names[7]; -static void append_file(gras_log_appender_t* this, gras_log_event_t* ev, +static void append_file(xbt_log_appender_t this_appender, xbt_log_event_t ev, const char *fmt); /* -struct gras_log_appender_file_s { - gras_log_appender_t* appender; +struct xbt_log_appender_file_s { + xbt_log_appender_t* appender; FILE *file; }; */ -static gras_log_appender_t gras_log_appender_file = { append_file, NULL } ; +static s_xbt_log_appender_t xbt_log_appender_file = { append_file, NULL } ; /* appender_data=FILE* */ -gras_log_appender_t* gras_log_default_appender = &gras_log_appender_file; +xbt_log_appender_t xbt_log_default_appender = &xbt_log_appender_file; + +static const char* xbt_logappender_verbose_information(void) { + static char buffer[256]; + static double begin_of_time = -1; + + if (begin_of_time<0) + begin_of_time=gras_os_time(); + + if(strlen(xbt_procname())) + sprintf(buffer,"%s:%s:(%ld) %f", gras_os_myname(), + xbt_procname(),gras_os_getpid(),gras_os_time()-begin_of_time); + else + sprintf(buffer,"%f", gras_os_time()-begin_of_time); + + return buffer; +} -static void append_file(gras_log_appender_t* this, - gras_log_event_t* ev, +static void append_file(xbt_log_appender_t this_appender, + xbt_log_event_t ev, const char *fmt) { /* TODO: define a format field in struct for timestamp, etc. struct DefaultLogAppender* this = (struct DefaultLogAppender*)this0;*/ + + char *procname = (char*)xbt_logappender_verbose_information(); + if (!procname) + procname = (char*)""; + + if ((FILE*)(this_appender->appender_data) == NULL) + this_appender->appender_data = (void*)stderr; - if ((FILE*)(this->appender_data) == NULL) - this->appender_data = (void*)stderr; - - gras_assert0(ev->priority>=0, + xbt_assert0(ev->priority>=0, "Negative logging priority naturally forbidden"); - gras_assert1(ev->priorityprioritypriority); - fprintf(stderr, "%s:%d: ", ev->fileName, ev->lineNum); + if (ev->priority != xbt_log_priority_info) + fprintf(stderr, "[%s] %s:%d: ", procname, ev->fileName, ev->lineNum); + else + fprintf(stderr, "[%s] ", procname); fprintf(stderr, "[%s/%s] ", - ev->cat->name, gras_log_priority_names[ev->priority]); + ev->cat->name, xbt_log_priority_names[ev->priority] ); vfprintf(stderr, fmt, ev->ap); fprintf(stderr, "\n"); }