Easy3D 2.5.3
logging.h
1/********************************************************************
2 * Copyright (C) 2015 Liangliang Nan <liangliang.nan@gmail.com>
3 * https://3d.bk.tudelft.nl/liangliang/
4 *
5 * This file is part of Easy3D. If it is useful in your research/work,
6 * I would be grateful if you show your appreciation by citing it:
7 * ------------------------------------------------------------------
8 * Liangliang Nan.
9 * Easy3D: a lightweight, easy-to-use, and efficient C++ library
10 * for processing and rendering 3D data.
11 * Journal of Open Source Software, 6(64), 3255, 2021.
12 * ------------------------------------------------------------------
13 *
14 * Easy3D is free software; you can redistribute it and/or modify
15 * it under the terms of the GNU General Public License Version 3
16 * as published by the Free Software Foundation.
17 *
18 * Easy3D is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU General Public License for more details.
22 *
23 * You should have received a copy of the GNU General Public License
24 * along with this program. If not, see <http://www.gnu.org/licenses/>.
25 ********************************************************************/
26
27#ifndef EASY3D_UTIL_LOGGING_H
28#define EASY3D_UTIL_LOGGING_H
29
30
31#include <3rd_party/easyloggingpp/easylogging++.h>
32
33
36#define LOG_IF_EVERY_N(n, condition, LEVEL) if (condition) \
37 CLOG_EVERY_N(n, LEVEL, ELPP_CURR_FILE_LOGGER_ID)
38
41#define LOG_IF_FIRST_N(n, condition, LEVEL) if (condition) \
42 CLOG_N_TIMES(n, LEVEL, ELPP_CURR_FILE_LOGGER_ID)
43
45#define COUNTER ELPP_COUNTER->hitCounts()
46
47
48namespace easy3d {
49
52 namespace logging {
53
70 bool info_to_stdout = false,
71 bool warning_to_stdcout = true,
72 bool error_to_stdcout = true,
73 bool verbose_to_stdcout = false,
74 const std::string &log_file = "default",
75 int verbosity_threshold = 9
76 );
77
80
82 std::string log_file();
83
87 class Logger {
88 public:
89 Logger();
91 virtual void send(el::Level level, const std::string& msg) = 0;
92 };
93
94 }
95
96}
97
98
99
100#endif // EASY3D_UTIL_LOGGING_H
Definition: logging.h:87
virtual void send(el::Level level, const std::string &msg)=0
writes the log message msg (and may also other given information).
void initialize(bool info_to_stdout=false, bool warning_to_stdcout=true, bool error_to_stdcout=true, bool verbose_to_stdcout=false, const std::string &log_file="default", int verbosity_threshold=9)
Initializes the logging module.
std::string log_file()
Returns the full path of the log file (empty if no log file has been created).
bool is_initialized()
Returns whether the logging has been initialized.
Definition: collider.cpp:182