blob: 56b365d9ee0ad724b1f3eba5d7bd1511eb461eba [file] [log] [blame]
/*
*
* Connection Manager
*
* Copyright (C) 2007-2009 Intel Corporation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*/
#ifndef __CONNMAN_LOG_H
#define __CONNMAN_LOG_H
#ifdef __cplusplus
extern "C" {
#endif
#include <stdarg.h>
#include <connman/types.h>
/**
* SECTION:log
* @title: Logging premitives
* @short_description: Functions for logging error and debug information
*/
void connman_info(const char *format, ...)
__attribute__((format(printf, 1, 2)));
void connman_warn(const char *format, ...)
__attribute__((format(printf, 1, 2)));
void connman_error(const char *format, ...)
__attribute__((format(printf, 1, 2)));
void connman_debug(unsigned mask, const char *format, ...)
__attribute__((format(printf, 2, 3)));
void connman_vinfo(const char *format, va_list);
void connman_vwarn(const char *format, va_list);
void connman_verror(const char *format, va_list);
void connman_vdebug(unsigned mask, const char *format, va_list);
connman_bool_t connman_debug_enabled(unsigned debugmask);
/**
* CONNMAN_ERROR
* @fmt: format string
* @arg...: list of arguments
*
* Simple macro around connman_error() which also include the function
* name it is called in.
*/
#define CONNMAN_ERROR(fmt, arg...) \
connman_error("%s:%s() " fmt, __FILE__, __FUNCTION__ , ## arg)
/**
* DBG:
* @mask: bit mask of debug classes
* @fmt: format string
* @arg...: list of arguments
*
* Simple macro around connman_debug() which also include the function
* name it is called in.
*/
#define DBG(mask, fmt, arg...) connman_debug(mask, "%s:%s() " fmt, __FILE__, __FUNCTION__ , ## arg)
/*
* N.B. If you add a new debug tag to the enum below,
* be sure to make a corresponding addition to
* the "debugtags" array in log.c.
*/
enum {
DBG_AGENT = 0x00000001,
DBG_CONNECTION = 0x00000002,
DBG_DEVICE = 0x00000004,
DBG_ELEMENT = 0x00000008,
DBG_INET = 0x00000010,
DBG_MANAGER = 0x00000020,
DBG_NETWORK = 0x00000040,
DBG_NOTIFIER = 0x00000080,
DBG_PROFILE = 0x00000100,
DBG_RESOLV = 0x00000200,
DBG_RFKILL = 0x00000400,
DBG_RTNL = 0x00000800,
DBG_SECURITY = 0x00001000,
DBG_SERVICE = 0x00002000,
DBG_STORAGE = 0x00004000,
DBG_TASK = 0x00008000,
DBG_TEST = 0x00010000,
DBG_UDEV = 0x00020000,
DBG_METRICS = 0x00040000,
DBG_CRYPTO = 0x00080000,
DBG_PLUGIN = 0x00100000,
/* NB: plugins start at DBG_PLUGIN */
DBG_BLUETOOTH = 0x00200000,
DBG_DHCLIENT = 0x00400000,
DBG_DNSPROXY = 0x00800000,
DBG_ETHERNET = 0x01000000,
DBG_HOSTROUTE = 0x02000000,
DBG_PPPD = 0x04000000,
DBG_VPN = 0x08000000,
DBG_WIFI = 0x10000000,
DBG_MODEM = 0x20000000,
DBG_RESOLVFILES = 0x40000000,
DBG_PORTAL = 0x80000000
/* nothing is available */
};
#define DBG_ANY 0xffffffff
void connman_log_mask_value_of_key(const char *key);
const char *connman_log_get_masked_value(const char *key, const char *value);
#ifdef __cplusplus
}
#endif
#endif /* __CONNMAN_LOG_H */