X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/dff9e15c44ab6340d27215957c56fa72fad246a2..3a2947e432dde3d65f3319db5527e235074fbd43:/include/xbt/log.h diff --git a/include/xbt/log.h b/include/xbt/log.h index cd31e12ec3..e51c491c12 100644 --- a/include/xbt/log.h +++ b/include/xbt/log.h @@ -1,8 +1,7 @@ -/* $Id$ */ - /* log - a generic logging facility in the spirit of log4j */ -/* Copyright (c) 2003, 2004 Martin Quinson. All rights reserved. */ +/* Copyright (c) 2004, 2005, 2006, 2007, 2008, 2009, 2010. The SimGrid Team. + * 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. */ @@ -29,12 +28,12 @@ /* XBT_LOG_MAYDAY: define this to replace the logging facilities with basic printf function. Useful to debug the logging facilities themselves */ #undef XBT_LOG_MAYDAY -/*#define XBT_LOG_MAYDAY*/ +//#define XBT_LOG_MAYDAY #ifndef _XBT_LOG_H_ #define _XBT_LOG_H_ -#include "xbt/misc.h" +#include "simgrid_config.h" #include SG_BEGIN_DECL() @@ -93,10 +92,12 @@ SG_BEGIN_DECL() /* The root of the category hierarchy. */ #define XBT_LOG_ROOT_CAT root -/* In stric ansi C, we are not allowed to initialize a variable with - * a non-constant value. But the whole tree of categories is - * connected by setting the address of the parent category as a field - * of the child one. +/* The whole tree of categories is connected by setting the address of + * the parent category as a field of the child one. + * + * In strict ansi C, we are allowed to initialize a variable with "a + * pointer to an lvalue designating an object of static storage + * duration" [ISO/IEC 9899:1999, Section 6.6]. * * Unfortunately, Visual C builder does not target any standard * compliance, and C99 is not an exception to this unfortunate rule. @@ -111,7 +112,7 @@ SG_BEGIN_DECL() * you don't want to see your child category become a child of root * directly. */ -#if defined(__STRICT_ANSI__) || defined(_MSC_VER) +#if defined(_MSC_VER) # define _XBT_LOG_PARENT_INITIALIZER(parent) NULL # define XBT_LOG_CONNECT(parent_cat,child) _XBT_LOGV(child).parent = &_XBT_LOGV(parent_cat) #else @@ -168,7 +169,7 @@ SG_BEGIN_DECL() * Indicates which category is the default one. */ -#if defined(XBT_LOG_MAYDAY) /*|| defined (NLOG) * turning logging off */ +#if defined(XBT_LOG_MAYDAY) || defined(SUPERNOVAE_MODE) /*|| defined (NLOG) * turning logging off */ # define XBT_LOG_DEFAULT_CATEGORY(cname) #else # define XBT_LOG_DEFAULT_CATEGORY(cname) \ @@ -241,7 +242,7 @@ XBT_PUBLIC(void) xbt_log_control_set(const char *cs); /* * Do NOT access any members of this structure directly. FIXME: move to private? */ -#ifdef WIN32 +#ifdef _XBT_WIN32 #define XBT_LOG_BUFF_SIZE 16384 /* Size of the static string in which we build the log string */ #else #define XBT_LOG_BUFF_SIZE 2048 /* Size of the static string in which we build the log string */ @@ -266,7 +267,7 @@ XBT_PUBLIC(void) xbt_log_control_set(const char *cs); int lineNum; va_list ap; va_list ap_copy; /* need a copy to launch dynamic layouts when the static ones overflowed */ -#ifdef WIN32 +#ifdef _XBT_WIN32 char *buffer; #else char buffer[XBT_LOG_BUFF_SIZE]; @@ -389,21 +390,30 @@ XBT_PUBLIC_DATA(s_xbt_log_category_t) _XBT_LOGV(XBT_LOG_ROOT_CAT); * code. * Setting the LogEvent's valist member is done inside _log_logEvent. */ -#ifdef WIN32 -#define _XBT_LOG_PRE(catv, priority) do { \ - if (_XBT_LOG_ISENABLEDV(catv, priority)) { \ - s_xbt_log_event_t _log_ev = \ - {NULL,priority,__FILE__,_XBT_FUNCTION,__LINE__}; \ - _log_ev.cat = &(catv); \ - _log_ev.buffer = (char*) calloc(XBT_LOG_BUFF_SIZE + 1, sizeof(char)); \ - _xbt_log_event_log(&_log_ev +#ifdef _XBT_WIN32 +#include /* calloc */ +#define _XBT_LOG_PRE(catv, prio) do { \ + if (_XBT_LOG_ISENABLEDV(catv, prio)) { \ + s_xbt_log_event_t _log_ev; \ + _log_ev.cat = &(catv); \ + _log_ev.priority = (prio); \ + _log_ev.fileName = __FILE__; \ + _log_ev.functionName = _XBT_FUNCTION; \ + _log_ev.lineNum = __LINE__; \ + _log_ev.buffer = (char*) calloc(XBT_LOG_BUFF_SIZE + 1, sizeof(char)); \ + _xbt_log_event_log(&_log_ev #else -#define _XBT_LOG_PRE(catv, priority) do { \ - if (_XBT_LOG_ISENABLEDV(catv, priority)) { \ - s_xbt_log_event_t _log_ev = \ - {NULL,priority,__FILE__,_XBT_FUNCTION,__LINE__}; \ - _log_ev.cat = &(catv); \ - _xbt_log_event_log(&_log_ev \ +#include /* memset */ +#define _XBT_LOG_PRE(catv, prio) do { \ + if (_XBT_LOG_ISENABLEDV(catv, prio)) { \ + s_xbt_log_event_t _log_ev; \ + _log_ev.cat = &(catv); \ + _log_ev.priority = (prio); \ + _log_ev.fileName = __FILE__; \ + _log_ev.functionName = _XBT_FUNCTION; \ + _log_ev.lineNum = __LINE__; \ + memset(_log_ev.buffer, 0, XBT_LOG_BUFF_SIZE); \ + _xbt_log_event_log(&_log_ev #endif