epubgrep/src/log.hpp

58 lines
1.7 KiB
C++

/* This file is part of epubgrep.
* Copyright © 2021 tastytea <tastytea@tastytea.de>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, version 3.
*
* 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 Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef EPUBGREP_LOG_HPP
#define EPUBGREP_LOG_HPP
#include "fs-compat.hpp"
#include <boost/log/sinks/sync_frontend.hpp>
#include <boost/log/sinks/text_file_backend.hpp>
#include <boost/log/sources/global_logger_storage.hpp>
#include <boost/log/sources/logger.hpp>
#include <boost/log/trivial.hpp>
#include <boost/smart_ptr/shared_ptr.hpp>
#define LOG(severity) BOOST_LOG_SEV(epubgrep::log::logger::get(), severity)
#define DEBUGLOG LOG(epubgrep::log::sev::debug) << __func__ << "(): "
namespace epubgrep::log
{
namespace blog = boost::log;
using sev = boost::log::trivial::severity_level;
struct global_variables
{
boost::shared_ptr<
blog::sinks::synchronous_sink<blog::sinks::text_file_backend>>
textlog;
};
BOOST_LOG_INLINE_GLOBAL_LOGGER_DEFAULT(
logger, boost::log::sources::severity_logger_mt<sev>)
//! Call this before doing any logging.
void init();
//! Enable debug logging. Call after init().
void enable_debug();
} // namespace epubgrep::log
#endif // EPUBGREP_LOG_HPP