freeswitch/libs/sofia-sip/libsofia-sip-ua/su/su_default_log.c
Michael Jerris 19561a8411 sync with latest sofia tree.
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@5574 d0543943-73ff-0310-b7d9-9358b9ac24b2
2007-08-06 19:24:10 +00:00

93 lines
2.6 KiB
C

/*
* This file is part of the Sofia-SIP package
*
* Copyright (C) 2005 Nokia Corporation.
*
* Contact: Pekka Pessi <pekka.pessi@nokia.com>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
* as published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA
*
*/
/**@ingroup su_log
* @CFILE su_default_log.c
*
* Default debug log object.
*
* @author Pekka Pessi <Pekka.Pessi@nokia.com>
*
* @date Created: Fri Feb 23 17:30:46 2001 ppessi
*/
#include <stdio.h>
#include <stdarg.h>
#include <sofia-sip/su_log.h>
#include <sofia-sip/su_debug.h>
/** Log into FILE, by default stderr. */
static void default_logger(void *stream, char const *fmt, va_list ap)
{
FILE *f = stream ? (FILE *)stream : stderr;
vfprintf(f, fmt, ap);
}
/**@var SOFIA_DEBUG
*
* Environment variable determining the default debug log level.
*
* The SOFIA_DEBUG environment variable is used to determine the default
* debug logging level. The normal level is 3.
*
* @sa <sofia-sip/su_debug.h>, su_log_global
*/
extern char const SOFIA_DEBUG[];
#ifdef SU_DEBUG
#define SOFIA_DEBUG_ SU_DEBUG
#else
#define SOFIA_DEBUG_ 3
#endif
/**Default debug log.
*
* If a source module does not define a log object, the output from su_log()
* function or SU_DEBUG_X() macros use this log object. Also, if a log
* function references log object with NULL pointer, the su_log_default
* object is used.
*
* If output from another log object is not redirected with
* su_log_redirect(), the output can be redirected via this log object.
*
* If the logging level of a log object is not set with su_log_set_level(),
* or the environment variable directing its level is not set, the log level
* from the #su_log_default object is used.
*
* The level of #su_log_default is set using SOFIA_DEBUG environment
* variable.
*/
su_log_t su_log_default[1] = {{
sizeof(su_log_t),
"sofia", /* Log name */
"SOFIA_DEBUG", /* Environment variable controlling logging level */
SOFIA_DEBUG_, /* Default level */
SU_LOG_MAX, /* Maximum log level */
0,
default_logger,
NULL
}};