blob: d75687cac7902cdc6a2037526908a6964503f369 [file] [log] [blame]
akmhoque3d06e792014-05-27 16:23:20 -05001/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2/**
Nick Gordonc6a85222017-01-03 16:54:34 -06003 * Copyright (c) 2014-2017, The University of Memphis,
Nick Gordonf8b5bcd2016-08-11 15:06:50 -05004 * Regents of the University of California
akmhoque3d06e792014-05-27 16:23:20 -05005 *
6 * This file is part of NLSR (Named-data Link State Routing).
7 * See AUTHORS.md for complete list of NLSR authors and contributors.
8 *
9 * NLSR is free software: you can redistribute it and/or modify it under the terms
10 * of the GNU General Public License as published by the Free Software Foundation,
11 * either version 3 of the License, or (at your option) any later version.
12 *
13 * NLSR is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
14 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15 * PURPOSE. See the GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License along with
18 * NLSR, e.g., in COPYING.md file. If not, see <http://www.gnu.org/licenses/>.
akmhoque3d06e792014-05-27 16:23:20 -050019 **/
Muktadir R Chowdhurybfa27602014-10-31 10:57:41 -050020
Nick Gordond0a7df32017-05-30 16:44:34 -050021/*! \file logger.hpp
22 * \brief Define macros and auxiliary functions for logging.
23 *
24 * This file defines the macros that NLSR uses for logging
25 * messages. An intrepid hacker could replace this system cleanly by
26 * providing a system that redefines all of the _LOG_* macros with an
27 * arbitrary system, as long as the underlying system accepts strings.
28 */
29
akmhoque674b0b12014-05-20 14:33:28 -050030#ifndef NLSR_LOGGER_HPP
31#define NLSR_LOGGER_HPP
32
33#include <log4cxx/logger.h>
34
akmhoque674b0b12014-05-20 14:33:28 -050035#define INIT_LOGGER(name) \
36 static log4cxx::LoggerPtr staticModuleLogger = log4cxx::Logger::getLogger(name)
37
Vince Lehmanf99b87f2014-08-26 15:54:27 -050038#define _LOG_TRACE(x) \
39 LOG4CXX_TRACE(staticModuleLogger, x)
40
akmhoque674b0b12014-05-20 14:33:28 -050041#define _LOG_DEBUG(x) \
Vince Lehmanf99b87f2014-08-26 15:54:27 -050042 LOG4CXX_DEBUG(staticModuleLogger, x)
akmhoque674b0b12014-05-20 14:33:28 -050043
44#define _LOG_INFO(x) \
45 LOG4CXX_INFO(staticModuleLogger, x)
46
Vince Lehmanf99b87f2014-08-26 15:54:27 -050047#define _LOG_WARN(x) \
48 LOG4CXX_WARN(staticModuleLogger, x)
49
50#define _LOG_ERROR(x) \
51 LOG4CXX_ERROR(staticModuleLogger, x)
52
53#define _LOG_FATAL(x) \
54 LOG4CXX_FATAL(staticModuleLogger, x);
55
akmhoque674b0b12014-05-20 14:33:28 -050056void
Vince Lehmanf99b87f2014-08-26 15:54:27 -050057INIT_LOGGERS(const std::string& logDir, const std::string& logLevel);
58
Muktadir R Chowdhurybfa27602014-10-31 10:57:41 -050059void
60INIT_LOG4CXX(const std::string& log4cxxConfPath);
61
Vince Lehmanf99b87f2014-08-26 15:54:27 -050062bool
63isValidLogLevel(const std::string& logLevel);
akmhoque674b0b12014-05-20 14:33:28 -050064
65#endif // NLSR_LOGGER_HPP