My Project
debug.h
1/*
2 * This file is part of signon
3 *
4 * Copyright (C) 2015-2016 Canonical Ltd.
5 *
6 * Contact: Alberto Mardegan <alberto.mardegan@canonical.com>
7 *
8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public License
10 * version 2.1 as published by the Free Software Foundation.
11 *
12 * This library is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
20 * 02110-1301 USA
21 */
22
23#ifndef LIBSIGNON_DEBUG_H
24#define LIBSIGNON_DEBUG_H
25
26#include <QDebug>
27
28#ifdef TRACE
29 #undef TRACE
30#endif
31
32#ifdef BLAME
33 #undef BLAME
34#endif
35
36#ifdef DEBUG_ENABLED
37extern int libsignon_logging_level;
38static inline bool debugEnabled() {
39 return libsignon_logging_level >= 2;
40}
41
42static inline bool criticalsEnabled() {
43 return libsignon_logging_level >= 1;
44}
45#define TRACE() \
46 if (debugEnabled()) qDebug()
47#define BLAME() \
48 if (criticalsEnabled()) qCritical()
49
50#else // DEBUG_ENABLED
51 #define TRACE() while (0) qDebug()
52 #define BLAME() while (0) qDebug()
53#endif
54
55namespace SignOn {
56
57void setLoggingLevel(int level);
58void initDebug();
59
60}
61
62#endif // LIBSIGNON_DEBUG_H